Personalized bazzite KDE image
  • Just 85.9%
  • Dockerfile 11.5%
  • Shell 2.6%
Find a file
skullbite 32f92c54e3
All checks were successful
Build container image / Build and push image (push) Successful in 3m25s
Add cosign.pub
2026-06-19 18:32:20 +00:00
.forgejo Update .forgejo/workflows/build.yml 2026-06-19 17:25:48 +00:00
build_files Update build_files/build.sh 2026-06-19 17:32:41 +00:00
disk_config Feat: Change Anaconda settings for non-gnome images (#127) 2025-08-06 15:24:59 -04:00
.gitignore feat: build in tempdir and move files on success (#82) 2025-03-16 21:15:55 -03:00
artifacthub-repo.yml Update artifacthub-repo.yml 2025-01-24 09:00:35 -05:00
Containerfile make image deck [skip ci] 2026-06-19 17:30:16 +00:00
cosign.pub Add cosign.pub 2026-06-19 18:32:20 +00:00
Justfile fix(just): correct shfmt typo (#217) 2026-05-07 09:39:37 +03:00
LICENSE chore: add license 2023-08-26 10:49:08 -05:00
README.md guidance about cleanup rules 2026-06-04 15:32:46 +02:00

Universal Blue Image Template - Forgejo

I (skullbite) do not claim ownership of the original image template. Just the changes made for Forgejo.

This project tweaks the Universal Blue image template's action workflow to be compatible with Forgejo (14.0.3+) instances. (excluding codeberg which hasn't been tested)

There is no intention of keeping this repository up-to-spec with the original repo which occassionally recieves minor tweaks from its maintainers and Dependabot. (Mirror Date: 2026-05-10)

Runner Requirements

Since Forgejo instances only support self-hosted runners, you'll need to ensure the following:

  • Use the label ubuntu-24.04:docker://ghcr.io/catthehacker/ubuntu:act-24.04 in your runner's config.
  • Ensure docker is availible for your runner. If you're using docker/podman to host Forgejo and/or your runner, I recommend looking at the Forgejo + Runner compose file.

How to Use

Warning

This was tested on Forgejo (14.0.3), support cannot be garaunteed for any older version.

Ensure that your Forgejo instance of choice allows for actions, if it doesn't you can't continue.

Regarding Step 4/5: Do NOT share this token with anybody! They will have access to push images on your behalf!

Regarding Step 6: Do NOT commit "cosign.key" to your repo, and do NOT share it with anybody!

If your "cosign.key" is ever publicly exposed, repeat step 6 as soon as possible; YOUR REPOS SECURITY IS COMPROMISED!

  1. On your Forgejo instance, create a new migration, select Forgejo, and enter this repo's url (right click to copy) into the "Migrate / Clone from URL" text box.

  2. In the newly migrated repo, go to Settings > Units > Overview and ensure that Actions are ticked on.

  3. In the file ".forgejo/workflows/build.yml", change the env variable REGISTRY_URL to match your forgejo instance url.

  4. Go to User Settings > Applications > Access tokens and create a token with the permission write:package (Packages: Read and Write) and copy it, no other permissions are necessary.

  5. Go to the Repository Settings > Actions > Secrets and add the token from the previous step to a new secret with the name REGISTRY_TOKEN, do not share this token with anyone.

  6. You must create a key pair to sign your image before continuing, commit cosign.pub to your repo, and add the contents of cosign.key as a new secret with the name SIGNING_SECRET.

  7. Make whatever changes you see fit and commit them.

The original README can be found here which contains important information on how this template works, as well as examples of custom images created with this template.

Warning for Cloudflare users

Having your Forgejo instance running through the Cloudflare free plan proxy will limit the upload size below what is needed to push a container generated by this repo. It is recommended to reverse proxy your domain through Caddy or NGINX instead as you'll have full control on upload size.

If you have limited storage to work with or don't need to store versions of an image for a long time, I highly recommend setting cleanup rules to automatically purge older images.

Go to User/Orginization Settings > Packages > Cleanup Rules > Add Cleanup Rule, set the type to container and adjust the keep and deletion settings.

If you're only running a system for yourself, I recommend keeping the last 25 versions and deleting anything older than 30 days. Of course, you can choose whatever works for you.

Be aware that cleanup rules apply to every repo under a user/orginization.