57 lines
1.3 KiB
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}";
|
|
};
|
|
};
|
|
};
|
|
}
|