Fixes
- Static multi-page sites (#11, #13):
staticdeploys now resolve directory URLs like/foo/to/foo/index.htmlbefore the SPA fallback (try_files {path} {path}/index.html /index.html). Fixes inner pages of multi-page static sites serving the rootindex.html. (#12) - Multiple gardens on one host (#9):
- Host-global ports registry (#15): port allocations now live in a single host-level registry at
/var/lib/appgarden/ports.json, shared by every garden on a host under one lock. Ports are a box-global resource (all gardens share the host's TCP port space), so this prevents two co-located gardens from handing out the same host port.garden.jsonstays per-garden. - Migration safety (#16): on first creation, the host registry is seeded from the legacy per-
app_rootports.json(preserving active tunnel reservations) and reconciled from each garden'sgarden.json.
Upgrading a multi-garden host
Run appgarden server init once per garden — each init reconciles that garden's app ports into the shared /var/lib/appgarden/ports.json (idempotent).