Idea
Recipes for the multi-stack-on-one-VPS story, starting with the missing gateway scaffold.
Why
cmd_gateway expects stacks/gateway/Caddyfile.<host> but no scaffold/recipe creates it. Fixed host ports across recipes collide on one VPS (vaultwarden + nextcloud both 8080; pihole/static-site/next-postgres all want 80; only jellyfin has a bind knob).
Scope
- A gateway/Caddy recipe that produces the expected layout.
- Per-recipe host-port knobs (bind address / published port var) to avoid collisions.
- New recipes users predictably want: wordpress, plausible, grafana+prometheus (standalone), navidrome, miniflux/freshrss, syncthing, outline, plus a bare postgres/redis utility recipe.
Acceptance
strut scaffold gateway --recipe caddy-gateway produces a working gateway; two port-configurable recipes coexist on one host.
Filed from the 2026-07-03 full-codebase audit (docs/AUDIT-2026-07.md).
Idea
Recipes for the multi-stack-on-one-VPS story, starting with the missing gateway scaffold.
Why
cmd_gatewayexpectsstacks/gateway/Caddyfile.<host>but no scaffold/recipe creates it. Fixed host ports across recipes collide on one VPS (vaultwarden + nextcloud both 8080; pihole/static-site/next-postgres all want 80; only jellyfin has a bind knob).Scope
Acceptance
strut scaffold gateway --recipe caddy-gatewayproduces a working gateway; two port-configurable recipes coexist on one host.Filed from the 2026-07-03 full-codebase audit (docs/AUDIT-2026-07.md).