diff --git a/configurations/camelot/default.nix b/configurations/camelot/default.nix index 0878794..b59ca0f 100644 --- a/configurations/camelot/default.nix +++ b/configurations/camelot/default.nix @@ -44,6 +44,7 @@ ./nextcloud.nix ./gotosocial.nix ./matrix.nix + ./forgejo.nix ]; swapDeviceUUID = "a7c628ab-c5cb-4094-89d0-19b153fbead4"; diff --git a/configurations/camelot/forgejo.nix b/configurations/camelot/forgejo.nix new file mode 100644 index 0000000..9359ede --- /dev/null +++ b/configurations/camelot/forgejo.nix @@ -0,0 +1,51 @@ +{ config, ... }: +let + forgejoUrl = "git.dalaran.fr"; + forgejoPort = config.services.forgejo.settings.server.HTTP_PORT; +in +{ + services.nginx.virtualHosts.${forgejoUrl} = { + forceSSL = true; + enableACME = true; + extraConfig = '' + client_max_body_size 512M; + ''; + + locations."/" = { + recommendedProxySettings = true; + proxyPass = "http://localhost:${toString forgejoPort}"; + }; + }; + + services.forgejo = { + enable = true; + + database = { + type = "postgres"; + createDatabase = true; + }; + + stateDir = "/srv/forgejo"; + dump.enable = true; + + lfs.enable = true; + + settings = { + DEFAULT = { + APP_NAME = "Dala's Git server"; + }; + server = { + DOMAIN = forgejoUrl; + ROOT_URL = "https://${forgejoUrl}"; + HTTP_ADDR = "127.0.0.1"; + LANDING_PAGE = "/dala"; + }; + session = { + COOKIE_SECURE = true; + }; + service = { + DISABLE_REGISTRATION = true; + }; + }; + }; +}