Hardware infrastructure
Codeberg
Codeberg provides a LXC container with 48GB RAM, 24 threads and SSD drive to be used for the CI. A Forgejo Runner is installed in /opt/runner
and registered with a token obtained from https://codeberg.org/forgejo. It does not allow running privileged containers or LXC containers for security reasons. The runner is intended to be used for pull requests, for instance in https://codeberg.org/forgejo/forgejo.
Octopuce
Octopuce provides hardware managed by the devops team. It can be accessed via a VPN which provides a DNS for the octopuce.forgejo.org
internal domain.
The VPN is deployed and upgraded using the following Enough command line:
Hetzner
https://hetzner01.forgejo.org runs on an EX101 Hetzner hardware.
OVH
https://code.forgejo.org runs on an OVH virtual machine using the same OVH account used for the forgejo.org domain name and mails.
It is deployed and upgraded using the following Enough command line:
Upgrading only Forgejo:
Login in the machine hosting the Forgejo instance for debugging purposes:
Uberspace
The website https://forgejo.org is hosted at https://uberspace.de/. The https://codeberg.org/forgejo/website/ CI has credentials to push HTML pages there.
Installing Forgejo runners
Preparing the LXC hypervisor
Creating an LXC container
Creating a runner
Multiple runners can co-exist on the same machine. To keep things organized they are located in a directtory 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
should be
LABELS=docker:docker://node:16-bullseye,ubuntu-latest:docker://node:16-bullseye
.
If a runner provides LXC containers and unprivileged docker
containers, the labels should be
LABELS=docker:docker://node:16-bullseye,self-hosted
.
codeberg.org config.yml
fetch_timeout: 30s
# because it can be slow at timesfetch_interval: 60s
# because there is throttling and 429 replies will mess up the runner- cache
enabled: false
# because codeberg.org is still v1.19