{ pkgs, config, ...}: let # Domain TBD domain = "git2.ws.kcnhub.com"; in { services.forgejo = { enable = true; database = { type = "postgres"; socket = "/run/postgresql"; }; settings = { server = { HTTP_PORT = 5001; ROOT_URL = "https://${domain}"; }; actions = { ENABLED = true; }; service.DISABLE_REGISTRATION = true; }; }; # To allow forgejo to access /etc/shadow for PAM authentication users.users.forgejo.extraGroups = [ "shadow" ]; # Services Runner running in nixos-container w/ host label # This allows sharing of nix-store for caching actions builds # ... Maybe I'll actually set this up. Some concern for clearing its # cache and it overpopulating. Idk. We'll see. # services.gitea-actions-runner.instances."nix-runner" = { # enable = true; # name = "nix-runner"; # url = "http://localhost:${config.services.gitea.settings.server.HTTP_PORT}"; # labels = [ # # don't require docker/podman # "native:host" # ]; # tokenFile = "/var/lib/gitea/runner_token"; # }; services.postgresql = { enable = true; port = 5432; # Ensures forejo user owns a db called forgejo ensureDatabases = [ "forgejo" ]; ensureUsers = [{ name = "forgejo"; ensureDBOwnership = true; ensureClauses = { createdb = true; }; }]; }; services.caddy.virtualHosts = { # "ws.kcnhub.com" = { # extraConfig = '' # redir "https://git.ws.kcnhub.com/DavidC/WS-KCNHUB/wiki" # ''; # }; "${domain}" = { extraConfig = '' reverse_proxy 127.0.0.1:${toString config.services.forgejo.settings.server.HTTP_PORT} ''; }; }; }