{ config, lib, ... }: { specialisation.forgejoEnableRegistration.configuration.services.forgejo.settings.service.DISABLE_REGISTRATION = false; services.forgejo = { enable = true; settings = { service = { DISABLE_REGISTRATION = lib.mkDefault true; }; server = { ROOT_URL = "http://git.everest.sable-pancake.ts.net"; START_SSH_SERVER = true; SSH_PORT = 4222; }; repository = { ENABLE_PUSH_CREATE_USER = true; DEFAULT_PUSH_CREATE_PRIVATE = true; DEFAULT_BRANCH = "main"; }; }; }; # Add a cname for forgejo services.dnsmasq.settings.cname = ["git.everest.sable-pancake.ts.net,everest"]; # Set up traefik as the reverse proxy for Forgejo services.traefik = { dynamicConfigOptions = { http = { routers = { forgejo-subpath = { rule = "Host(`git.everest.sable-pancake.ts.net`)"; service = "forgejo"; }; }; services.forgejo.loadBalancer.servers = [ {url = "http://localhost:${toString config.services.forgejo.settings.server.HTTP_PORT}";} ]; }; }; }; }