diff --git a/README.md b/README.md new file mode 100644 index 0000000..0b70f3c --- /dev/null +++ b/README.md @@ -0,0 +1,58 @@ +# Forgejo Runner Quadlets + +My configurations for running a Forgejo Runner with root-less Podman Quadlets. This configuration enables Actions to build container images using `buildah`. + +## Set-up + +Install podman: + +```sh +sudo apt install podman +``` + +Clone this repository: + +```sh +git clone https://git.poire.dev/aramperes/forgejo-runner-quadlet.git +``` + +Create the directory for the quadlets. SystemD will be looking for the quadlets here, and we can use symbolic links to keep them in sync with this repo. + +```sh +mkdir -p $HOME/.config/containers/systemd + +for f in forgejo-runner-quadlet/quadlets/*; do ln -s $(realpath $f) $HOME/.config/containers/systemd/$(basename $f); done +``` + +Confirm: + +```sh +ls -l $HOME/.config/containers/systemd/ + +# forgejo-runner.container -> /home/user/forgejo-runner-quadlet/quadlets/forgejo-runner.container +# podman-runtime.container -> /home/user/forgejo-runner-quadlet/quadlets/podman-runtime.container +# runner.network -> /home/user/forgejo-runner-quadlet/quadlets/runner.network +``` + +Run SystemD generator dry-run to validate the quadlets: + +```sh +/usr/lib/systemd/system-generators/podman-system-generator --user --dryrun && echo 'Validated!' +``` + +Reload SystemD daemon and start the Runner. This will automatically create the Podman Runtime container and the bridge network. + +```sh +systemctl --user daemon-reload +systemctl --user start forgejo-runner.service +``` + +Confirm the containers are running: + +```sh +podman ps + +# CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +# f060983acae5 quay.io/podman/stable:latest podman system ser... 38 seconds ago Up 38 seconds systemd-podman-runtime +# 0bd5990960eb data.forgejo.org/forgejo/runner:9 /bin/sh -c sleep ... 37 seconds ago Up 37 seconds systemd-forgejo-runner +``` \ No newline at end of file