The container's Caddy is 2.11 now, like the edge's, so the workarounds 2f1c626 added for Debian's 2.6 go: private-web-caddy and private-web-clone run their Caddy with persist_config off again, so it saves no config anywhere, and release-caddy adapts deploy/edge/Caddyfile with whatever Caddy there is instead of skipping it below 2.7. All three are as they were before that commit.
- commit
- 28dafe37d66aa6ee26e97e80f17aeb31470675f2
- parent
- 3006d6d778786a3a988980e83b98ac3c84f9b0d5
- author
- cat <admin@dev.site>
- ci
- ✓ passed in 225s, signed by cat
- kind
- test risk score 0.8 of 3, Jev's estimate
- review
- #7 Run a pinned Caddy 2.11 in the container
ci attestation
forge-attestation 1 type ci commit 28dafe37d66aa6ee26e97e80f17aeb31470675f2 tree fa0bb7f51a5e64a5bfef6029d7cf819d4669bc06 script .forge/ci 38df37c0d5a6382f60569079a0dd821094e37e4a result pass exit 0 started 2026-10-19T00:36:49Z duration 225s runner (not shown here; refs/notes/ci has it) system Darwin 25.5.0 arm64 env host log sha256:fe3d0d410fff57110a913af7ca1071ff973e9e74f5950a13fe5b9d57f2f41acf 329 lines |remote: review #4: /dami/greet/reviews/4/ |pushed wip/i18n |3f89f3d running .forge/ci: greet.sh: say what it is | | sh: /bin/sh | | ok greet |3f89f3d pass in 0s, signed |pushed main |remote: review #4: /dami/greet/reviews/4/ |pushed wip/i18n |899354d running .forge/ci: wave at the world | | sh: /bin/sh | | FAIL greet : got 'hello, world o/', want 'hello, world' |899354d fail in 0s, signed |forge: 1 commit(s) did not pass |remote: review #6: /dami/greet/reviews/6/ |pushed ana/wave |05e8aa9 running .forge/ci: update the test for the wave | | sh: /bin/sh | | ok greet |05e8aa9 pass in 0s, signed |remote: review #6: /dami/greet/reviews/6/ |pushed ana/wave |warning: You appear to have cloned an empty repository. |site home: deployed b4db4d5 -> /sites/ana/dotfiles/home/ |created ana/notes |remote: review #1: /ana/notes/reviews/1/ |pushed ana/todo |landing #1 A todo list: ana/todo -> main |f180361 running .forge/ci: web, server and Python versions of greet | | sh: /bin/sh | | ok greet |f180361 pass in 0s, signed |pushed main |462c1f6 running .forge/ci: messages: notes for the later regions | | sh: /bin/sh | | ok greet |462c1f6 pass in 0s, signed |remote: review #7: /dami/greet/reviews/7/ |pushed dami/regions |created dami/forge |warning: You appear to have cloned an empty repository. |site guide: deployed df96734 -> /sites/dami/forge/guide/ |(node:40951) ExperimentalWarning: stripTypeScriptTypes is an experimental feature and might change at any time |(Use `node --trace-warnings ...` to show where the warning was created) |built ana/dotfiles in 0s -> /Users/dami/Library/Caches/forge/ci/35f7a65d0235/demo/root/.forge/www |(node:41883) ExperimentalWarning: stripTypeScriptTypes is an experimental feature and might change at any time |(Use `node --trace-warnings ...` to show where the warning was created) |built ana/notes in 1s -> /Users/dami/Library/Caches/forge/ci/35f7a65d0235/demo/root/.forge/www |(node:42696) ExperimentalWarning: stripTypeScriptTypes is an experimental feature and might change at any time |(Use `node --trace-warnings ...` to show where the warning was created) |built dami/forge in 1s -> /Users/dami/Library/Caches/forge/ci/35f7a65d0235/demo/root/.forge/www |(node:43401) ExperimentalWarning: stripTypeScriptTypes is an experimental feature and might change at any time |(Use `node --trace-warnings ...` to show where the warning was created) |built dami/greet in 1s -> /Users/dami/Library/Caches/forge/ci/35f7a65d0235/demo/root/.forge/www |(node:46555) ExperimentalWarning: stripTypeScriptTypes is an experimental feature and might change at any time |(Use `node --trace-warnings ...` to show where the warning was created) |built - in 1s -> /Users/dami/Library/Caches/forge/ci/35f7a65d0235/demo/root/.forge/www |226 of 226 pages render the same without 11ty |guide: 4 files, links ok |ok
Signature: good, cat
| M | test/ | 2 | +- |
| M | test/ | 2 | +- |
| M | test/ | 8 | +------- |
@@ -29,7 +29,7 @@ ok caddy adapt --config "$T/Caddyfile" --adapter caddyfile
2929 cport=$(free_port)3030 private_server3131 {32- printf '{\n\tadmin off\n\tauto_https off\n}\n\n'32+ printf '{\n\tadmin off\n\tauto_https off\n\tpersist_config off\n}\n\n'3333 FORGE_PRIVATE_PORT=$PRIV_PORT "$FORGE" server caddyfile "http://127.0.0.1:$cport"3434 } >"$T/Caddyfile.run"3535 XDG_DATA_HOME=$T/xdg XDG_CONFIG_HOME=$T/xdg caddy run --config "$T/Caddyfile.run" --adapter caddyfile >"$T/caddy.log" 2>&1 &@@ -36,7 +36,7 @@ private_server
3636 node "$T_HOME/test/git-cgi.ts" "$gport" >"$T/cgi.log" 2>&1 &3737 T_PIDS="$T_PIDS $!"3838 {39- printf '{\n\tadmin off\n\tauto_https off\n}\n\n'39+ printf '{\n\tadmin off\n\tauto_https off\n\tpersist_config off\n}\n\n'4040 PATH="$T/bin:$PATH" FORGE_PRIVATE_PORT=$PRIV_PORT "$FORGE" server caddyfile "http://127.0.0.1:$cport"4141 } | awk -v up="127.0.0.1:$gport" '4242 /reverse_proxy unix\/\/run\/fcgiwrap\.socket/ { sub(/unix\/\/run\/fcgiwrap\.socket/, up); print; next }@@ -14,11 +14,5 @@ has "$e" 'not path_regexp \^/\[\^/\]\+/\[\^/\]\+/releases/download/\.$'
1414 has "$e" 'header @download Content-Disposition attachment'1515 if command -v caddy >/dev/null 2>&1; then1616 ok caddy adapt --config "$T/Caddyfile" --adapter caddyfile17- # The edge's Caddy is Alpine's (deploy/edge/Dockerfile), and newer than18- # Debian's 2.6 in the forge's container, which doesn't know the edge's19- # persist_config.20- case $(caddy version) in21- v2.[0-6].* | 2.[0-6].*) note "caddy $(caddy version | cut -d' ' -f1) is older than the edge's: skipped adapting deploy/edge/Caddyfile" ;;22- *) FORGE_DOMAIN=src.test FORGE_MIRROR_URL=https://mirror.test ok caddy adapt --config "$e" --adapter caddyfile ;;23- esac17+ FORGE_DOMAIN=src.test FORGE_MIRROR_URL=https://mirror.test ok caddy adapt --config "$e" --adapter caddyfile2418 fi