mirror of
https://code.forgejo.org/infrastructure/documentation
synced 2024-11-25 04:01:12 +00:00
45 lines
1.7 KiB
Markdown
45 lines
1.7 KiB
Markdown
## 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 and LXC 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
|
|
|
|
```shell
|
|
version=3.5.0
|
|
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']`.
|
|
|
|
```shell
|
|
name=myrunner
|
|
mkdir -p $DIR ; cd $DIR
|
|
forgejo-runner 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 &
|
|
```
|
|
|