ready for runners

This commit is contained in:
plasmagoat 2025-06-06 23:32:17 +02:00
parent fc9971ddc9
commit 7dd5043b5d
49 changed files with 2569 additions and 1085 deletions

View file

@ -0,0 +1,9 @@
{
imports = [
../../templates/base.nix
../../secrets/shared-sops.nix
./runner.nix
./networking.nix
./sops.nix
];
}

View file

@ -0,0 +1,4 @@
{ config, lib, pkgs, runnerId, ... }:
{
networking.hostName = "forgejo-runner-${runnerId}";
}

View file

@ -0,0 +1,35 @@
{ config, pkgs,... }:
{
# users.users.forgejo-runner = {
# isSystemUser = true;
# extraGroups = [ "docker" ]; # Optional: if using docker jobs
# };
services.gitea-actions-runner = {
package = pkgs.forgejo-actions-runner;
instances.default = {
enable = true;
name = config.networking.hostName;
url = "https://git.procopius.dk";
# Obtaining the path to the runner token file may differ
# tokenFile should be in format TOKEN=<secret>, since it's EnvironmentFile for systemd
tokenFile = config.sops.secrets."forgejo-runner-registration-token".path;
labels = [
"ubuntu-latest:docker://node:16-bullseye"
# "ubuntu-22.04:docker://node:16-bullseye"
# "ubuntu-20.04:docker://node:16-bullseye"
# "ubuntu-18.04:docker://node:16-buster"
## optionally provide native execution on the host:
# "native:host"
];
};
};
# systemd.services."forgejo-actions-runner-default".serviceConfig = {
# User = "forgejo-runner";
# Group = "forgejo-runner";
# };
virtualisation.docker.enable = true; # Optional: if using docker
}

View file

@ -0,0 +1,7 @@
{ config, lib, ... }:
{
sops.secrets."forgejo-runner-registration-token" = {
sopsFile = ../../secrets/forgejo/runner-secrets.yml;
mode = "0440";
};
}