Both api and admin2 are bundled with the Grav 2.0 zip and not available
via GPM. Extract and install both during remote-install. Remove the
ad-hoc remote-install-admin2 target — the main install now covers it.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
Rewire demo targets to use docker exec for file ops (user/ is owned by
http), point to the new italy-2026-demo source, and reduce demo-reset
to a single rm -rf of the demo trip directory.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
- Update post form parent, Makefile demo targets, and test scripts to use
new trip-scoped paths (01.trips/japan-korea-2026/01.dailies)
- Rename tracker.spec.js → dailies.spec.js and update all /tracker URLs
to /trips/japan-korea-2026/dailies across nav.spec.js, post.spec.js,
helpers.js, and dailies.spec.js
- Add Italy 2025 demo trip to Makefile demo-load/demo-reset targets
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The getgrav/grav image is Debian-based and has no uid 1000 user,
causing Apache to fail switching to APACHE_RUN_USER=#1000 on restart.
fix-perms now creates the uid 1000 user if absent, sets ownership,
then gracefully reloads Apache workers so they run as uid 1000.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
APACHE_RUN_USER/GROUP=#1000 makes PHP/Apache write files owned by
the host user (mischa) instead of http. fix-perms target in setup
ensures ownership is correct after plugin install.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
test-config: static YAML validator for post-form.md — checks that the
add-page-by-form action name, pageconfig/pagefrontmatter blocks, and all
required fields are correctly wired. Fast, no server needed. Catches the
class of bug that caused silent post failures.
test-post: end-to-end HTTP test — logs in, submits the form, verifies an
entry.md was created on disk, then cleans up. Requires GRAV_TEST_USER and
GRAV_TEST_PASS in .env (see .env.example).
make test-config # fast, no credentials needed
make test-post # full e2e, needs .env credentials
make test # both
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>