2 Commits
Author SHA1 Message Date
Juan Denis 7c47c8ece4 Move this round's new tests onto shared factories
They minted JWTs and seeded rows by hand and stubbed subprocess
directly, which the seed and stub-adoption ratchets reject.
2026-10-10 09:47:11 -04:00
Juan Denis 12f6dff430 Keep host paths and site names out of user hands
POST/PUT /apps let any developer set root_path, compose_file,
systemd_unit and managed_by, and store a raw name. Root-run code later
runs docker compose from that root, renders the name into an nginx
vhost and joins it onto sites-available for rm -f. The host-binding
fields are now admin-only (as /manual already was), create slugs the
name and checks for clashes, and a rename must already be a slug.

The nginx site methods all share write_vhost's plain-filename check, so
enable/disable/delete can no longer be pointed outside the site dirs.
2026-10-10 06:46:18 -04:00