mirror of
https://github.com/RGBCube/ncc
synced 2025-07-30 19:47:47 +00:00
Add forgejo runner
This commit is contained in:
parent
7236216e85
commit
8dfcd01ce5
5 changed files with 73 additions and 7 deletions
|
@ -1,11 +1,12 @@
|
||||||
{ config, ulib, ... }: with ulib;
|
{ config, ulib, pkgs, ... }: with ulib;
|
||||||
|
|
||||||
let
|
let
|
||||||
inherit (config.networking) domain;
|
inherit (config.networking) domain;
|
||||||
|
|
||||||
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
15
hosts/cube/podman.nix
Normal 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" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -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 [];
|
||||||
|
|
5
secrets/cube/password.runner.forgejo.age
Normal file
5
secrets/cube/password.runner.forgejo.age
Normal 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½:ÇÅÑ
|
|
@ -15,7 +15,8 @@ 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;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue