From 88781bae050ba5c78bf0a304817e37779c5c8e70 Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Tue, 24 Jun 2025 17:51:32 +0100 Subject: [PATCH] Refactor forgejo configuration --- hosts/nixedo/homelab.nix | 1 - hosts/nixedo/modules/forgejo.nix | 65 +++++++------------------------- 2 files changed, 13 insertions(+), 53 deletions(-) diff --git a/hosts/nixedo/homelab.nix b/hosts/nixedo/homelab.nix index 73982869..f9f44184 100644 --- a/hosts/nixedo/homelab.nix +++ b/hosts/nixedo/homelab.nix @@ -8,7 +8,6 @@ services = { audiobookshelf.enable = true; - forgejo.enable = true; gitea-actions-runner.enable = true; home-assistant.enable = true; homepage-dashboard.enable = true; diff --git a/hosts/nixedo/modules/forgejo.nix b/hosts/nixedo/modules/forgejo.nix index 83eeb2fd..89da0991 100644 --- a/hosts/nixedo/modules/forgejo.nix +++ b/hosts/nixedo/modules/forgejo.nix @@ -1,61 +1,22 @@ -{ config, lib, ... }: +{ config, ... }: -with lib; - -let - cfg = homelab.services.${service}; - homelab = config.homelab; - service = "forgejo"; -in { - options.homelab.services.${service} = { - enable = mkEnableOption "Enable ${service}"; + services.forgejo = { + enable = true; + stateDir = "/var/www/forgejo"; - url = mkOption { - default = "code.${homelab.domain}"; - type = types.str; - }; + settings = { + server = { + DOMAIN = "code.oliverdavies.uk"; + ROOT_URL = "https://${config.services.forgejo.settings.server.DOMAIN}"; + }; - homepage.name = mkOption { - default = "Forgejo"; - type = types.str; - }; - - homepage.description = mkOption { - default = "Beyond coding. We forge."; - type = types.str; - }; - - homepage.icon = mkOption { - default = "forgejo"; - type = types.str; - }; - - homepage.category = mkOption { - default = "Services"; - type = types.str; + service.DISABLE_REGISTRATION = true; }; }; - config = mkIf cfg.enable { - services = { - ${service} = { - enable = true; - stateDir = "/var/www/${service}"; - - settings = { - server = { - DOMAIN = cfg.url; - ROOT_URL = "https://${cfg.url}"; - }; - - service.DISABLE_REGISTRATION = true; - }; - }; - - cloudflared.tunnels.${homelab.cloudflared.tunnelId}.ingress = { - ${cfg.url} = "http://localhost:${toString config.services.${service}.settings.server.HTTP_PORT}"; - }; - }; + services.cloudflared.tunnels.${config.homelab.cloudflared.tunnelId}.ingress = { + "${config.services.forgejo.settings.server.DOMAIN}" = + "http://localhost:${toString config.services.forgejo.settings.server.HTTP_PORT}"; }; }