1
Fork 0
mirror of https://github.com/RGBCube/ncc synced 2025-07-30 19:47:47 +00:00

Add forgejo runner

This commit is contained in:
RGBCube 2024-02-07 12:46:48 +03:00
parent 7236216e85
commit 8dfcd01ce5
No known key found for this signature in database
5 changed files with 73 additions and 7 deletions

View file

@ -1,4 +1,4 @@
{ config, ulib, ... }: with ulib; { config, ulib, pkgs, ... }: with ulib;
let let
inherit (config.networking) domain; inherit (config.networking) domain;
@ -6,6 +6,7 @@ let
fqdn = "git.${domain}"; fqdn = "git.${domain}";
in serverSystemConfiguration { in serverSystemConfiguration {
age.secrets."cube/password.mail.forgejo".owner = "forgejo"; age.secrets."cube/password.mail.forgejo".owner = "forgejo";
age.secrets."cube/password.runner.forgejo".owner = "forgejo";
services.postgresql = { services.postgresql = {
ensureDatabases = [ "forgejo" ]; ensureDatabases = [ "forgejo" ];
@ -15,6 +16,46 @@ in serverSystemConfiguration {
}]; }];
}; };
users.groups.gitea-runner = {};
users.users.gitea-runner = systemUser {
extraGroups = [ "docker" ];
group = "gitea-runner";
home = "/var/lib/gitea-runner";
};
services.gitea-actions-runner = {
package = pkgs.forgejo-actions-runner;
instances.runner-01 = enabled {
name = "runner-01";
url = fqdn;
labels = [
"debian-latest:docker://node:18-bullseye"
"ubuntu-latest:docker://node:18-bullseye"
"act:docker://ghcr.io/catthehacker/ubuntu:act-latest"
];
tokenFile = config.age.secrets."cube/password.runner.forgejo".path;
settings = {
cache.enabled = true;
capacity = 4;
container.network = "host";
};
hostPackages = with pkgs; [
bash
coreutils
curl
gitMinimal
sudo
wget
];
};
};
services.forgejo = enabled { services.forgejo = enabled {
lfs = enabled {}; lfs = enabled {};
@ -30,10 +71,10 @@ in serverSystemConfiguration {
in { in {
default.APP_NAME = description; default.APP_NAME = description;
# actions = { actions = {
# ENABLED = true; ENABLED = true;
# DEFAULT_ACTIONS_URL = "https://${fqdn}"; DEFAULT_ACTIONS_URL = "https://${fqdn}";
# }; };
attachment.ALLOWED_TYPES = "*/*"; attachment.ALLOWED_TYPES = "*/*";

15
hosts/cube/podman.nix Normal file
View file

@ -0,0 +1,15 @@
{ ulib, ... }: with ulib;
serverSystemConfiguration {
virtualisation.podman = enabled {
dockerCompat = true;
dockerSocket = enabled {};
defaultNetwork.settings.dns_enabled = true;
autoPrune = enabled {
dates = "daily";
flags = [ "--all" ];
};
};
}

View file

@ -7,6 +7,10 @@
isNormalUser = true; isNormalUser = true;
}; };
systemUser = attributes: attributes // {
isSystemUser = true;
};
graphicalUser = attributes: attributes // { graphicalUser = attributes: attributes // {
isNormalUser = true; isNormalUser = true;
extraGroups = [ "graphical" ] ++ attributes.extraGroups or []; extraGroups = [ "graphical" ] ++ attributes.extraGroups or [];

View file

@ -0,0 +1,5 @@
age-encryption.org/v1
-> ssh-ed25519 +rZ0Tw rraoMjYwD6IIkmgyiDKlij2+bLqY5PNyMU5IPQ4mvjI
/yttaAf7neHJ69LYh6p33gRBXIZA4oxWS5DDMnfOhhM
--- o+/I/vPxFdL9orC3PsBTazOrwG6Le8uLMUYiHE4XMj8
¬¨<EFBFBD> ±]}ÍWž{[a'mdú€ AÈU‰Ô¬ì7z*ÌY9"èÍ|±1dvùQxcŸ¶Ç“<C387>à"®0ñÆÔpÖò¿Œr½:ÇÅÑ

View file

@ -16,6 +16,7 @@ in with keys; {
"cube/password.acme.age".publicKeys = key cube; "cube/password.acme.age".publicKeys = key cube;
"cube/password.mail.forgejo.age".publicKeys = key cube; "cube/password.mail.forgejo.age".publicKeys = key cube;
"cube/password.runner.forgejo.age".publicKeys = key cube;
"cube/password.grafana.age".publicKeys = key cube; "cube/password.grafana.age".publicKeys = key cube;
"cube/password.mail.grafana.age".publicKeys = key cube; "cube/password.mail.grafana.age".publicKeys = key cube;