summaryrefslogtreecommitdiff
path: root/modules/nixos
diff options
context:
space:
mode:
authorSeth Flynn <[email protected]>2025-02-08 22:30:48 -0500
committerSeth Flynn <[email protected]>2025-02-08 22:32:40 -0500
commitc168f8427c86336f143b04c65a06a7d12aa62631 (patch)
treefb53378b23265bf7f88362ac519c1d9683b859e9 /modules/nixos
parent48a2938114a1fc10971399a0c462c38f782f11ef (diff)
nixos/forgejo: actually act as a mixin
Diffstat (limited to 'modules/nixos')
-rw-r--r--modules/nixos/mixins/forgejo.nix64
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}";
};
};
- };
- };
+ })
+ ];
}