diff --git a/nix/hosts/lemp11/default.nix b/nix/hosts/lemp11/default.nix index 8fe37f5..eee3017 100644 --- a/nix/hosts/lemp11/default.nix +++ b/nix/hosts/lemp11/default.nix @@ -12,6 +12,7 @@ }; homelab = { + forgejo.enable = true; gitea.enable = true; immich.enable = true; jellyfin.enable = true; diff --git a/nix/modules/nixos/features/homelab/default.nix b/nix/modules/nixos/features/homelab/default.nix index d60cbb3..4058b83 100644 --- a/nix/modules/nixos/features/homelab/default.nix +++ b/nix/modules/nixos/features/homelab/default.nix @@ -1,6 +1,7 @@ { imports = [ ./audiobookshelf.nix + ./forgejo.nix ./gitea.nix ./immich.nix ./jellyfin.nix diff --git a/nix/modules/nixos/features/homelab/forgejo.nix b/nix/modules/nixos/features/homelab/forgejo.nix new file mode 100644 index 0000000..0e71732 --- /dev/null +++ b/nix/modules/nixos/features/homelab/forgejo.nix @@ -0,0 +1,36 @@ +{ config, lib, ... }: + +with lib; + +let + port = 2223; +in +{ + options.features.homelab.forgejo.enable = mkEnableOption "Enable forgejo"; + + config = mkIf config.features.homelab.forgejo.enable { + services = { + forgejo = { + enable = true; + group = "media"; + stateDir = "/mnt/media/forgejo"; + + settings = { + server = { + HTTP_PORT = port; + }; + + service = { + DISABLE_REGISTRATION = true; + }; + }; + }; + + nginx = { + enable = true; + + virtualHosts."forgejo.davies.home".locations."/".proxyPass = "http://localhost:${toString port}/"; + }; + }; + }; +}