From 67acb4e852bceff6a021892e34dde53e4179f26e Mon Sep 17 00:00:00 2001 From: Victor Mignot Date: Sat, 27 Jul 2024 10:22:22 +0200 Subject: [PATCH] camelot: Add forgejo --- configurations/camelot/default.nix | 1 + configurations/camelot/forgejo.nix | 51 ++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 configurations/camelot/forgejo.nix 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; + }; + }; + }; +}