feat: added enable options, documents rebuild listener, and moves penfield to its proper domain

This commit is contained in:
Lewis Wynne 2026-04-07 16:55:47 +01:00
parent 196440e90b
commit fd060bb33e
2 changed files with 9 additions and 2 deletions

View file

@ -1,5 +1,6 @@
# services.site.<name> options: # services.site.<name> options:
# #
# enable — whether this site is active (default: false)
# domain — primary domain (required) # domain — primary domain (required)
# repo — git repository URL (required) # repo — git repository URL (required)
# static — serve build output as static files, no Node server (default: false) # static — serve build output as static files, no Node server (default: false)
@ -14,6 +15,9 @@
# dataDir — base directory for repo and data (default: /srv/<name>) # dataDir — base directory for repo and data (default: /srv/<name>)
# readWritePaths — paths the server can write to at runtime (default: []) # readWritePaths — paths the server can write to at runtime (default: [])
# afterServices — systemd units to wait for before building (default: ["forgejo.service"]) # afterServices — systemd units to wait for before building (default: ["forgejo.service"])
#
# a listener is active on http://localhost:4323/hooks/${name}-rebuild for CD
# Forgejo repo -> settings -> Webhooks -> Add webhook
{ ... }: { ... }:
let let
@ -36,7 +40,8 @@ in
}; };
services.site.penfield = { services.site.penfield = {
domain = "penfield2.ily.rs"; domain = "penfield.ily.rs";
redirectDomains = [ "penfield.wynne.rs" ];
repo = "https://git.ily.rs/lew/penfield"; repo = "https://git.ily.rs/lew/penfield";
static = true; static = true;
}; };

View file

@ -5,6 +5,8 @@ let
siteModule = types.submodule ({ name, ... }: { siteModule = types.submodule ({ name, ... }: {
options = { options = {
enable = lib.mkEnableOption "this site";
domain = mkOption { domain = mkOption {
type = types.str; type = types.str;
description = "Primary domain name."; description = "Primary domain name.";
@ -86,7 +88,7 @@ let
}; };
}); });
cfg = config.services.site; cfg = lib.filterAttrs (_: site: site.enable) config.services.site;
webhookPort = 4323; webhookPort = 4323;