Refactor forgejo configuration
All checks were successful
/ check (push) Successful in 1m31s

This commit is contained in:
Oliver Davies 2025-06-24 17:51:32 +01:00
parent 1ea1cc02bb
commit 88781bae05
2 changed files with 13 additions and 53 deletions

View file

@ -8,7 +8,6 @@
services = {
audiobookshelf.enable = true;
forgejo.enable = true;
gitea-actions-runner.enable = true;
home-assistant.enable = true;
homepage-dashboard.enable = true;

View file

@ -1,61 +1,22 @@
{ config, lib, ... }:
{ config, ... }:
with lib;
let
cfg = homelab.services.${service};
homelab = config.homelab;
service = "forgejo";
in
{
options.homelab.services.${service} = {
enable = mkEnableOption "Enable ${service}";
services.forgejo = {
enable = true;
stateDir = "/var/www/forgejo";
url = mkOption {
default = "code.${homelab.domain}";
type = types.str;
};
settings = {
server = {
DOMAIN = "code.oliverdavies.uk";
ROOT_URL = "https://${config.services.forgejo.settings.server.DOMAIN}";
};
homepage.name = mkOption {
default = "Forgejo";
type = types.str;
};
homepage.description = mkOption {
default = "Beyond coding. We forge.";
type = types.str;
};
homepage.icon = mkOption {
default = "forgejo";
type = types.str;
};
homepage.category = mkOption {
default = "Services";
type = types.str;
service.DISABLE_REGISTRATION = true;
};
};
config = mkIf cfg.enable {
services = {
${service} = {
enable = true;
stateDir = "/var/www/${service}";
settings = {
server = {
DOMAIN = cfg.url;
ROOT_URL = "https://${cfg.url}";
};
service.DISABLE_REGISTRATION = true;
};
};
cloudflared.tunnels.${homelab.cloudflared.tunnelId}.ingress = {
${cfg.url} = "http://localhost:${toString config.services.${service}.settings.server.HTTP_PORT}";
};
};
services.cloudflared.tunnels.${config.homelab.cloudflared.tunnelId}.ingress = {
"${config.services.forgejo.settings.server.DOMAIN}" =
"http://localhost:${toString config.services.forgejo.settings.server.HTTP_PORT}";
};
}