2.2 KiB
Forgejo runners
The LXC container in which the runner is installed must have capabilities that support the backend.
- docker:// needs a Docker enabled container
- lxc:// needs a Docker, LXC and libvirt enabled container
The runners it contains are not started at boot, it must be done manually. The bash history has the command line to do so.
Installation
version=4.0.1
sudo wget -O /usr/local/bin/forgejo-runner-$version https://code.forgejo.org/forgejo/runner/releases/download/v$version/forgejo-runner-$version-linux-amd64
sudo chmod +x /usr/local/bin/forgejo-runner-$version
echo 'export TERM=xterm-256color' >> .bashrc
Creating a runner
Multiple runners can co-exist on the same machine. To keep things organized they are located in a directory that is the same as the URL from which the token is obtained. For instance DIR=codeberg.org/forgejo-integration means that the token was obtained from the https://codeberg.org/forgejo-integration organization.
If a runner only provides unprivileged docker containers, the labels
in config.yml
should be:
labels: ['docker:docker://node:20-bookworm']
.
If a runner provides LXC containers and unprivileged docker
containers, the labels in config.yml
should be
labels: ['self-hosted:lxc://debian:bookworm', 'docker:docker://node:20-bookworm']
.
name=myrunner
mkdir -p $DIR ; cd $DIR
forgejo-runner-$version generate-config > config-$name.yml
## edit config-$name.yml and adjust the `labels:`
## Obtain a $TOKEN from https://$DIR
forgejo-runner-$version register --no-interactive --token $TOKEN --name runner --instance https://codeberg.org
forgejo-runner-$version --config config-$name.yml daemon |& cat -v > runner.log &
Removing old docker images
curl https://raw.githubusercontent.com/stepchowfun/docuum/main/install.sh -LSfs | sh
sudo tee /etc/systemd/system/docuum.service <<'EOF'
[Unit]
Description=Docuum
After=docker.service
Wants=docker.service
[Service]
Environment='THRESHOLD=10 GB'
ExecStart=/usr/local/bin/docuum --threshold ${THRESHOLD}
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl enable docuum --now
sudo journalctl --follow --unit docuum