feat(forgejo): add actions runner
This commit is contained in:
parent
ac6c8ef84d
commit
28cc9c48b2
@ -117,6 +117,7 @@
|
|||||||
my.services.forgejo = {
|
my.services.forgejo = {
|
||||||
enable = true;
|
enable = true;
|
||||||
port = 3000;
|
port = 3000;
|
||||||
|
actions.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [
|
swapDevices = [
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
@ -12,6 +13,11 @@ in {
|
|||||||
options.my.services.forgejo = {
|
options.my.services.forgejo = {
|
||||||
enable = mkEnableOption "Forgejo";
|
enable = mkEnableOption "Forgejo";
|
||||||
proxy = mkEnableOption "Forgejo reverse proxy entry";
|
proxy = mkEnableOption "Forgejo reverse proxy entry";
|
||||||
|
actions = mkOption {
|
||||||
|
type = types.submodule (_: {
|
||||||
|
options.enable = mkEnableOption "Forgejo Actions";
|
||||||
|
});
|
||||||
|
};
|
||||||
subdomain = mkOption {
|
subdomain = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "git";
|
default = "git";
|
||||||
@ -30,6 +36,7 @@ in {
|
|||||||
(mkIf cfg.enable {
|
(mkIf cfg.enable {
|
||||||
services.forgejo = {
|
services.forgejo = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
package = pkgs.unstable.forgejo;
|
||||||
settings.server = {
|
settings.server = {
|
||||||
DOMAIN = forgejoDomain;
|
DOMAIN = forgejoDomain;
|
||||||
ROOT_URL = forgejoUrl;
|
ROOT_URL = forgejoUrl;
|
||||||
@ -52,6 +59,33 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
networking.firewall.interfaces."${firewallInterface}".allowedTCPPorts = [cfg.port];
|
networking.firewall.interfaces."${firewallInterface}".allowedTCPPorts = [cfg.port];
|
||||||
|
|
||||||
|
age.secrets.forgejoActions.file = ../../../secrets/forgejo-actions.age;
|
||||||
|
services.gitea-actions-runner = mkIf cfg.actions.enable {
|
||||||
|
package = pkgs.unstable.forgejo-runner;
|
||||||
|
instances.venus = {
|
||||||
|
enable = true;
|
||||||
|
name = "venus";
|
||||||
|
url = forgejoUrl;
|
||||||
|
settings = {
|
||||||
|
# log = {
|
||||||
|
# level = "debug";
|
||||||
|
# };
|
||||||
|
options = "-v /var/run/podman/podman.sock:/var/run/podman/podman.sock";
|
||||||
|
runner = {
|
||||||
|
capacity = 5;
|
||||||
|
timeout = "45m";
|
||||||
|
};
|
||||||
|
container = {
|
||||||
|
privileged = true;
|
||||||
|
valid_volumes = ["*"];
|
||||||
|
force_pull = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
labels = [];
|
||||||
|
tokenFile = config.age.secrets.forgejoActions.path;
|
||||||
|
};
|
||||||
|
};
|
||||||
})
|
})
|
||||||
(mkIf cfg.proxy {
|
(mkIf cfg.proxy {
|
||||||
services.caddy.virtualHosts."${forgejoDomain}".extraConfig = ''
|
services.caddy.virtualHosts."${forgejoDomain}".extraConfig = ''
|
||||||
|
5
secrets/forgejo-actions.age
Normal file
5
secrets/forgejo-actions.age
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 jBnYqQ THVbnor+AP7CyleSBNaSbxQEkmHlrQ2u+auPOgFXexM
|
||||||
|
ntnmIaGTpQEFo438GAU/UJZ7217I27TkkbLaqYq+uKM
|
||||||
|
--- uYDKB1BuWSUCUsdNm4xA2ugOLq27Vz811FbjlK+qYes
|
||||||
|
³dô
¬ªÍM±ÞhÑ*$j®Øj²*½jÃÅÉ>Ý›Å!œ®>v<>Ù@hj7q¾§¡>í+…ÄÄy<15>ã¢Cþ¨5¯W†ŸƒØ1NÙDâ—^и
|
@ -6,6 +6,7 @@ in {
|
|||||||
# Venus
|
# Venus
|
||||||
"wireguard-thinkcentre.age".publicKeys = [venus];
|
"wireguard-thinkcentre.age".publicKeys = [venus];
|
||||||
"keycloak-db.age".publicKeys = [venus];
|
"keycloak-db.age".publicKeys = [venus];
|
||||||
|
"forgejo-actions.age".publicKeys = [venus];
|
||||||
|
|
||||||
# Oracle
|
# Oracle
|
||||||
"wireguard-oracle.age".publicKeys = [oracle];
|
"wireguard-oracle.age".publicKeys = [oracle];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user