32 lines
1.1 KiB
Nix
32 lines
1.1 KiB
Nix
|
|
# services/forgejo-runner.nix — self-hosted Forgejo Actions runner.
|
||
|
|
#
|
||
|
|
# Registers with forg.gregersen.it and runs jobs in Docker containers.
|
||
|
|
# Workflows in this repo target `runs-on: fred-nix`, which maps to the
|
||
|
|
# catthehacker ubuntu image (the de-facto compatibility image for running
|
||
|
|
# GitHub-style workflows on self-hosted runners).
|
||
|
|
#
|
||
|
|
# The runner registration token is one-time-use: it must exist at the path
|
||
|
|
# below on first activation, after which the runner stores its own auth in
|
||
|
|
# /var/lib/gitea-runner. To register:
|
||
|
|
#
|
||
|
|
# echo 'YOUR_REGISTRATION_TOKEN' | sudo tee /var/secrets/forgejo-runner-token
|
||
|
|
# sudo chmod 600 /var/secrets/forgejo-runner-token
|
||
|
|
{ config, lib, pkgs, ... }:
|
||
|
|
{
|
||
|
|
config = lib.mkIf (config.networking.hostName == "FredOS-Mediaserver") {
|
||
|
|
|
||
|
|
services.gitea-actions-runner = {
|
||
|
|
package = pkgs.forgejo-actions-runner;
|
||
|
|
instances.default = {
|
||
|
|
enable = true;
|
||
|
|
name = "mediaserver";
|
||
|
|
url = "https://forg.gregersen.it";
|
||
|
|
tokenFile = "/var/secrets/forgejo-runner-token";
|
||
|
|
labels = [
|
||
|
|
"fred-nix:docker://catthehacker/ubuntu:act-latest"
|
||
|
|
];
|
||
|
|
};
|
||
|
|
};
|
||
|
|
};
|
||
|
|
}
|