{ config, ... }: let repo = config.repo; repoHelpers = repo.helpers; service = repo.services.gitea; in { repo.services.gitea = { domain = "git.jelles.net"; host = "127.0.0.1"; port = 3001; url = "https://git.jelles.net/"; }; flake.modules.nixos.gitea = { lib, ... }: lib.mkMerge [ { services.gitea = { enable = true; settings = { server = { DOMAIN = service.domain; ROOT_URL = service.url; HTTP_PORT = service.port; HTTP_ADDR = service.host; START_SSH_SERVER = false; SSH_PORT = 22; }; service.DISABLE_REGISTRATION = true; }; }; } { services.openssh.settings.AllowUsers = [ "gitea" ]; } (repoHelpers.mkCaddyReverseProxy { inherit (service) domain port ; }) ]; }