ci: extract to own role
1 file changed, 68 insertions(+), 0 deletions(-)
changed files
A system/roles/ci.nix
@@ -0,0 +1,68 @@ +{ + config, + inputs, + pkgs, + ... +}: +{ + systemd.services.laminar.environment = { + NIX_PATH = "nixpkgs=flake:nixpkgs"; + }; + services.laminar = { + enable = true; + path = with pkgs; [ + fish + bash + gnutar + bzip2 + gzip + git + cached-nix-shell + nix + nix-build-uncached + config.programs.ssh.package + config.services.laminar.package + moreutils + flock + just + rsync + go + ]; + settings = { + title = "CI"; + bindHTTP = "[::1]:8002"; + keepRundirs = 1; + archiveURL = "https://ci.${config.networking.domain}/archive/"; + }; + timers = { + update-flake-nix-packages = { + startAt = "Saturday"; + accuracy = "6 hours"; + reason = "Weekly flake update"; + }; + }; + }; + users.users.laminar = { + homeMode = "770"; + }; + users.groups.laminar.members = [ "caddy" ]; + + services.caddy = { + virtualHosts = { + "ci.${config.networking.domain}" = + let + srv = config.services.laminar; + in + { + extraConfig = '' + reverse_proxy ${srv.settings.bindHTTP} + handle_path /archive/* { + root * ${srv.homeDir}/archive + file_server browse + } + ''; + }; + }; + }; + +}