caddy: keep admin on for hot reload; deploy.sh reloads after render

The Caddyfile had 'admin off', which disables Caddy's config file
watcher. Rendered Caddyfile changes never loaded until the container
was recreated, so the double-hash basicauth fix sat on disk unapplied
across deploys (2026-08-22). Admin binds to 127.0.0.1:2019 inside the
container and the port is unpublished, so nothing outside reaches it.

deploy.sh now issues an explicit 'caddy reload' (retry loop) after
'up -d', with the file watcher as backstop.
This commit is contained in:
Frank committed 2026-08-22 13:22:01 -07:00
1 parent da68b5ce1a
commit bb1ef9bfb3
5 files changed
+45 -1

No files matched your search

+13
View File
@@ -49,6 +49,19 @@ CADDYFILE="$REPO_ROOT/dankclaw/Caddyfile"
grep -q 'REPLACE_WITH_HASH' "$CADDYFILE"
}
@test "the Caddyfile does not disable the admin endpoint (hot reload needs it)" {
# admin off disables Caddy's config file watcher: rendered Caddyfile
# changes are never loaded until the container is recreated, and the
# stale config fails silently (2026-08-22: basicauth stayed broken for
# hours across deploys). The admin API binds to 127.0.0.1:2019 inside
# the container and the port is not published, so it is not reachable
# from the LAN.
if grep -qE '^\s*admin\s+off' "$CADDYFILE"; then
echo "Caddyfile: 'admin off' disables hot reload of rendered config"
return 1
fi
}
@test "the basicauth placeholder is a bare token (no bcrypt prefix in the template)" {
# Regression (2026-08-22): the template line was
# dank $2a$14$REPLACE_WITH_HASH