feat: documents sites module, and adds penfield

This commit is contained in:
Lewis Wynne 2026-04-07 16:44:29 +01:00
parent 216e97a10d
commit 1fa1dad73d
2 changed files with 28 additions and 9 deletions

View file

@ -1,6 +1,21 @@
# services.site.<name> options:
#
# domain — primary domain (required)
# repo — git repository URL (required)
# port — Node.js server port (required)
# redirectDomains — domains that 301 to the primary domain (default: [])
# branch — git branch to track (default: "main")
# packageManager — "npm" or "pnpm" (default: "pnpm")
# entryPoint — Node.js entry point relative to repo root (default: "dist/server/entry.mjs")
# environment — env vars for the running server (default: {})
# buildEnvironment — env vars for building (default: {})
# dataDir — base directory for repo and data (default: /srv/<name>)
# readWritePaths — paths the server can write to at runtime (default: [])
# afterServices — systemd units to wait for before building (default: ["forgejo.service"])
{ ... }: { ... }:
let let
websiteServiceDir = "/srv/website"; websiteData = "/srv/website/data";
in in
{ {
services.site.website = { services.site.website = {
@ -9,15 +24,19 @@ in
repo = "https://git.ily.rs/lew/website"; repo = "https://git.ily.rs/lew/website";
branch = "master"; branch = "master";
port = 4322; port = 4322;
packageManager = "pnpm";
dataDir = websiteServiceDir;
environment = { environment = {
ASTRO_DB_REMOTE_URL = "file:${websiteServiceDir}/data/guestbook.db"; ASTRO_DB_REMOTE_URL = "file:${websiteData}/guestbook.db";
}; };
buildEnvironment = { buildEnvironment = {
ASTRO_DB_REMOTE_URL = "file:${websiteServiceDir}/data/guestbook.db"; ASTRO_DB_REMOTE_URL = "file:${websiteData}/guestbook.db";
}; };
readWritePaths = [ "${websiteServiceDir}/data" ]; readWritePaths = [ websiteData ];
afterServices = [ "forgejo.service" ]; };
services.site.penfield = {
domain = "penfield2.ily.rs";
redirectDomains = [ "penfield.wynne.rs" ];
repo = "https://git.ily.rs/lew/penfield";
port = 4324;
}; };
} }

View file

@ -62,12 +62,12 @@ let
readWritePaths = mkOption { readWritePaths = mkOption {
type = types.listOf types.str; type = types.listOf types.str;
default = []; default = [];
description = "Extra paths the server can write to at runtime."; description = "Paths the server can write to at runtime.";
}; };
afterServices = mkOption { afterServices = mkOption {
type = types.listOf types.str; type = types.listOf types.str;
default = []; default = [ "forgejo.service" ];
description = "Systemd units to wait for before building."; description = "Systemd units to wait for before building.";
}; };
}; };