1.6 KiB
Forgejo Runner with systemd User Services
It is possible to use systemd's user services together with
podman to run forgejo-runner
using a normal user
account without any privileges and automatically start on boot.
This was last tested on Fedora 39 on 2024-02-19, but should work elsewhere as well.
Place the forgejo-runner
binary in /usr/local/bin/forgejo-runner
and make
sure it can be executed (chmod +x /usr/local/bin/forgejo-runner
).
Install and enable podman
as a user service:
$ sudo dnf -y install podman
You may need to reboot your system after installing podman
as it
modifies some system configuration(s) that may need to be activated. Without
rebooting the system my runner errored out when trying to set firewall rules, a
reboot fixed it.
Enable podman
as a user service:
$ systemctl --user start podman.socket
$ systemctl --user enable podman.socket
Make sure processes remain after your user account logs out:
$ loginctl enable-linger
Create the file /etc/systemd/user/forgejo-runner.service
with the following
content:
[Unit]
Description=Forgejo Runner
[Service]
Type=simple
ExecStart=/usr/local/bin/forgejo-runner daemon
Restart=on-failure
[Install]
WantedBy=default.target
Now activate it as a user service:
$ systemctl --user daemon-reload
$ systemctl --user start forgejo-runner
$ systemctl --user enable forgejo-runner
To see/follow the log of forgejo-runner
:
$ journalctl -f -t forgejo-runner
If you reboot your system, all should come back automatically.