nix-config/modules/homelab/forgejo.nix

57 lines
1.3 KiB
Nix

{ lib, ... }:
{
flake.modules.nixos.server-forgejo =
{ config, ... }:
let
cfg = config.homelab.services.forgejo;
inherit (lib)
mkEnableOption
mkOption
mkIf
types
;
in
{
options.homelab.services.forgejo = {
enable = mkEnableOption "Enable forgejo";
cloudflareTunnelId = mkOption {
type = types.str;
};
domain = mkOption {
type = types.str;
};
sshDomain = mkOption {
type = types.str;
};
};
config = mkIf cfg.enable {
services.forgejo = {
enable = true;
settings = {
server = {
DOMAIN = cfg.domain;
LANDING_PAGE = "explore";
ROOT_URL = "https://${config.services.forgejo.settings.server.DOMAIN}";
SSH_DOMAIN = cfg.sshDomain;
};
service.DISABLE_REGISTRATION = true;
ui.DEFAULT_THEME = "forgejo-auto";
};
};
services.cloudflared.tunnels.${cfg.cloudflareTunnelId}.ingress = {
"${config.services.forgejo.settings.server.DOMAIN}" =
"http://localhost:${toString config.services.forgejo.settings.server.HTTP_PORT}";
};
};
};
}