Kieran's opinionated (and probably slightly dumb) nix config

feat: add traverse

dunkirk.sh 982391d5 f2f4e2cb

verified
+37
+6
machines/terebithia/default.nix
··· 503 503 }; 504 504 }; 505 505 506 + atelier.services.traverse = { 507 + enable = true; 508 + domain = "traverse.dunkirk.sh"; 509 + deploy.repository = "https://github.com/taciturnaxolotl/traverse"; 510 + }; 511 + 506 512 atelier.services.herald = { 507 513 enable = true; 508 514 domain = "herald.dunkirk.sh";
+31
modules/nixos/services/traverse.nix
··· 1 + # Traverse - Interactive code walkthrough diagram server 2 + # 3 + # Uses the mkService base to provide standardized: 4 + # - Systemd service with git deployment 5 + # - Caddy reverse proxy 6 + # - Automatic SQLite backup with WAL checkpoint 7 + 8 + let 9 + mkService = import ../../lib/mkService.nix; 10 + in 11 + 12 + mkService { 13 + name = "traverse"; 14 + description = "Traverse code walkthrough diagram server"; 15 + defaultPort = 4173; 16 + runtime = "bun"; 17 + entryPoint = "src/index.ts"; 18 + 19 + extraConfig = cfg: { 20 + systemd.services.traverse.serviceConfig.Environment = [ 21 + "TRAVERSE_MODE=server" 22 + "TRAVERSE_PORT=${toString cfg.port}" 23 + "TRAVERSE_DATA_DIR=${cfg.dataDir}/data" 24 + "TRAVERSE_SHARE_URL=https://${cfg.domain}" 25 + ]; 26 + 27 + atelier.services.traverse.data = { 28 + sqlite = "${cfg.dataDir}/data/traverse.db"; 29 + }; 30 + }; 31 + }