{ config, lib, ... }: with lib; { 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 = { DOMAIN = "forgejo.opdavies.uk"; HTTP_PORT = 2223; }; service = { DISABLE_REGISTRATION = true; }; }; }; caddy.virtualHosts."${config.services.forgejo.settings.server.DOMAIN}" = { useACMEHost = "opdavies.uk"; extraConfig = "reverse_proxy localhost:${toString config.services.forgejo.settings.server.HTTP_PORT}"; }; }; }; }