{ pkgs, config, ... }: { services = let domain = "git.federated.nexus"; socket = "/run/forgejo/socket"; in { forgejo = { enable = true; package = pkgs.forgejo; # Not LTS settings = { service.DISABLE_REGISTRATION = true; repository.GO_GET_CLONE_URL_PROTOCOL = "ssh"; actions.DEFAULT_ACTIONS_URL = "github"; server = { DOMAIN = domain; ROOT_URL = "https://${domain}"; HTTP_ADDR = socket; PROTOCOL = "http+unix"; START_SSH_SERVER = true; SSH_LISTEN_PORT = 2222; BUILTIN_SSH_SERVER_USER = "git"; LANDING_PAGE = "explore"; }; federation.enable = true; }; }; # gitea-actions-runner = { # package = pkgs.forgejo-actions-runner; # instances.default = { # enable = true; # name = "monolith"; # url = domain; # tokenFile = config.age.secrets."runnerToken.age".path; # labels = ["native:host"]; # }; # }; caddy.virtualHosts."${domain}".extraConfig = "reverse_proxy unix/${socket}"; }; }