{ config, pkgs, ... }: { imports = [ ../settings/programs/sqlite.nix ../../packages/modules/nixos/laminar.nix ]; systemd.services.laminar.environment = { NIX_PATH = "nixpkgs=flake:nixpkgs"; }; services.laminar = { enable = true; path = with pkgs; [ fish bash gawk gnutar iputils bzip2 gzip config.programs.git.package 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 = [ "alin" "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 } ''; }; }; }; }