diff options
| author | Seth Flynn <[email protected]> | 2025-02-08 22:30:48 -0500 |
|---|---|---|
| committer | Seth Flynn <[email protected]> | 2025-02-08 22:32:40 -0500 |
| commit | c168f8427c86336f143b04c65a06a7d12aa62631 (patch) | |
| tree | fb53378b23265bf7f88362ac519c1d9683b859e9 /modules/nixos/mixins | |
| parent | 48a2938114a1fc10971399a0c462c38f782f11ef (diff) | |
nixos/forgejo: actually act as a mixin
Diffstat (limited to 'modules/nixos/mixins')
| -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}"; }; }; - }; - }; + }) + ]; } |
