feat(forgejo): add actions runner

This commit is contained in:
Michael Thomas 2024-05-20 19:32:35 -04:00
parent ac6c8ef84d
commit 28cc9c48b2
4 changed files with 41 additions and 0 deletions

View File

@ -117,6 +117,7 @@
my.services.forgejo = { my.services.forgejo = {
enable = true; enable = true;
port = 3000; port = 3000;
actions.enable = true;
}; };
swapDevices = [ swapDevices = [

View File

@ -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 = ''

View 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â—^и

View File

@ -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];