From e994df5675c76df9348f96df49708656ead7d516 Mon Sep 17 00:00:00 2001 From: Mohammad Rafiq Date: Sat, 14 Jun 2025 22:34:35 +0800 Subject: [PATCH] feat(server): add forgejo module --- .../nixos/server/web-apps/forgejo/default.nix | 30 +++++++++++++++++++ systems/x86_64-linux/apollo/default.nix | 3 +- 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 modules/nixos/server/web-apps/forgejo/default.nix diff --git a/modules/nixos/server/web-apps/forgejo/default.nix b/modules/nixos/server/web-apps/forgejo/default.nix new file mode 100644 index 0000000..a91f4cb --- /dev/null +++ b/modules/nixos/server/web-apps/forgejo/default.nix @@ -0,0 +1,30 @@ +{ config, lib, ... }: +let + inherit (lib) mkEnableOption mkIf singleton; + inherit (lib.pantheon) mkRootDomain mkStrOption mkPortOption; + cfg = config.server.web-apps.forgejo; + upstreamCfg = config.services.forgejo; +in +{ + options.server.web-apps.forgejo = { + enable = mkEnableOption ""; + url = mkStrOption; + port = mkPortOption 3000; + }; + + config = mkIf cfg.enable { + persistDirs = singleton { + directory = upstreamCfg.stateDir; + inherit (upstreamCfg) user group; + }; + server.networking.ddns.domains = singleton (mkRootDomain cfg.url); + server.web-servers.nginx.proxies = mkIf config.server.web-servers.nginx.enable (singleton { + source = cfg.url; + target = "http://${config.system.hostname}:${builtins.toString cfg.port}"; + }); + services.forgejo = { + enable = true; + settings.server.HTTP_PORT = cfg.port; + }; + }; +} diff --git a/systems/x86_64-linux/apollo/default.nix b/systems/x86_64-linux/apollo/default.nix index 7ed2fab..03fedfe 100644 --- a/systems/x86_64-linux/apollo/default.nix +++ b/systems/x86_64-linux/apollo/default.nix @@ -23,7 +23,6 @@ networking.ddns = { enable = true; domains = [ - "rrv.sh" "aenyrathia.wiki" "slayment.com" ]; @@ -38,6 +37,8 @@ librechat.url = "chat.bwfiq.com"; mattermost.enable = true; mattermost.url = "mm.bwfiq.com"; + forgejo.enable = true; + forgejo.url = "git.rrv.sh"; }; web-servers = { enableSSL = true;