Setup Forgejo Runner with rootless Podman on Fedora

Lukas Grossar

When setting up Forgejo Runner on my Fedora machine based on the upstream documentation I ran into some minor issues. This post acts as a quick how-to to work around those.

First install the forgejo-runner binary from the Fedora repositories:

sudo dnf install forgejo-runner

This will create the user forgejo-runner, which we will use instead of the runner user from the upstream documentation.

Enable "linger" for the forgejo-runner user to ensure that the systemd environment for the user is being set up:

sudo loginctl enable-linger forgejo-runner

Enable the podman.socket for the forgejo-runner user:

sudo systemctl --machine forgejo-runner@.host --user enable --now podman.socket

Verify that the socket is enabled and note down its location:

$ sudo systemctl --machine forgejo-runner@.host --user status podman.socket
● podman.socket - Podman API Socket
     Loaded: loaded (/usr/lib/systemd/user/podman.socket; enabled; preset: disabled)
     Active: active (listening) since Wed 2026-10-07 11:53:06 CEST; 12min ago
 Invocation: 4e063ddb55d14bccb15644ecdf663581
   Triggers: ● podman.service
       Docs: man:podman-system-service(1)
     Listen: /run/user/971/podman/podman.sock (Stream)

Now the only step remaining is to update the Forgejo Runner configuration at /etc/forgejo-runner/config.yml by following the instructions from Forgejo Runner Configuration and Forgejo Runner Registration. I've chosen ubuntu-latest:docker://node:lts for my runner label for now and don't forget to prefix the Podman socket for docker_host with unix:// (e.g. unix:///run/user/971/podman/podman.sock in my case).

sudo vim /etc/forgejo-runner/config.yml

After that you can start your runner with

sudo systemctl enable --now forgejo-runner.service