diff options
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/nixos/mixins/forgejo.nix | 64 |
1 files changed, 34 insertions, 30 deletions
diff --git a/modules/nixos/mixins/forgejo.nix b/modules/nixos/mixins/forgejo.nix index c268021..25f2171 100644 --- a/modules/nixos/mixins/forgejo.nix +++ b/modules/nixos/mixins/forgejo.nix @@ -1,47 +1,51 @@ { config, lib, ... }: let - cfg = config.mixins.forgejo; + forgejoCfg = config.services.forgejo; in { - options.mixins.forgejo = { - enable = lib.mkEnableOption "default configuration for Forgejo"; - }; + config = lib.mkMerge [ + { + services.forgejo = { + database = { + type = "postgres"; + }; - config = lib.mkIf cfg.enable { - services.forgejo = { - enable = true; + settings = { + server = { + PROTOCOL = "http+unix"; + DOMAIN = lib.mkDefault ("git." + config.networking.domain); + ROOT_URL = "https://" + forgejoCfg.settings.server.DOMAIN + "/"; - database = { - type = "postgres"; - }; + DISABLE_SSH = lib.mkDefault true; + }; - settings = { - server = { - PROTOCOL = "http+unix"; - DOMAIN = "git." + config.networking.domain; - ROOT_URL = "https://" + config.services.forgejo.settings.server.DOMAIN + "/"; + oauth2_client = { + ENABLE_AUTO_REGISTRATION = lib.mkDefault true; + }; - DISABLE_SSH = true; - }; + service = { + DISABLE_REGISTRATION = lib.mkDefault true; + }; - oauth2_client = { - ENABLE_AUTO_REGISTRATION = true; - }; + packages = { + ENABLED = lib.mkDefault false; + }; - service = { - DISABLE_REGISTRATION = lib.mkDefault true; - }; - - packages = { - ENABLED = false; + actions = { + ENABLED = lib.mkDefault false; + }; }; + }; + } - actions = { - ENABLED = false; + (lib.mkIf forgejoCfg.enable { + services.nginx.virtualHosts.${forgejoCfg.settings.server.DOMAIN} = { + locations."/" = { + proxyPass = "http://unix:${forgejoCfg.settings.server.HTTP_ADDR}"; }; }; - }; - }; + }) + ]; } |
