Hotfix 0.5.1 into main: the web image runs with capabilities dropped #269

Merged
littlefox merged 1 commit from hotfix-0.5.1 into main 2026-10-22 06:17:25 +00:00
Owner

Closes #268

Tagged as v0.5.1 from this branch (cut from v0.5.0, only this fix). This brings the fix and the 0.5.1 changelog into main.

  • packaging/docker/Dockerfile: caddy copied without the file capability the caddy image gives it.
  • tools/web-image-ci.sh: the smoke run uses --user 999:999 --read-only --tmpfs /tmp --cap-drop ALL --security-opt no-new-privileges, like Lysator's pod.

Verified: the 0.5.0 image fails locked down (exec /usr/local/bin/caddy: operation not permitted, same as the pod log); the fixed image, run locked down with the deployment's environment, serves the page (200) and upgrades /relay (101).

🤖 Generated with Claude Code

https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8

Closes #268 Tagged as v0.5.1 from this branch (cut from v0.5.0, only this fix). This brings the fix and the 0.5.1 changelog into main. - `packaging/docker/Dockerfile`: caddy copied without the file capability the caddy image gives it. - `tools/web-image-ci.sh`: the smoke run uses `--user 999:999 --read-only --tmpfs /tmp --cap-drop ALL --security-opt no-new-privileges`, like Lysator's pod. Verified: the 0.5.0 image fails locked down (`exec /usr/local/bin/caddy: operation not permitted`, same as the pod log); the fixed image, run locked down with the deployment's environment, serves the page (200) and upgrades /relay (101). 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
Hotfix 0.5.1: the web image runs with capabilities dropped
All checks were successful
ci / check (push) Successful in 12m27s
packaging / arch (pull_request) Successful in 14m29s
packaging / arch (push) Successful in 17m18s
ci / desktop (push) Successful in 18m26s
packaging / nix (pull_request) Successful in 24m36s
web-image / web-image (push) Successful in 28m17s
packaging / fedora (push) Successful in 30m31s
packaging / fedora (pull_request) Successful in 31m28s
ci / e2e (push) Successful in 33m39s
packaging / nix (push) Successful in 35m46s
packaging / debian (push) Successful in 39m30s
packaging / debian (pull_request) Successful in 39m26s
packaging / release (pull_request) Has been skipped
packaging / release (push) Successful in 1m49s
ceb496c2ad
0.5.0's image was the first built in CI, and its builder kept the file
capability (cap_net_bind_service) that the caddy image gives its binary.
Where capabilities are dropped and no new privileges may be gained, as on
Lysator's Kubernetes, such a binary can't be executed at all: caddy
failed with 'Operation not permitted', nothing listened on 8080, and
neokom.lysator.liu.se answered 503 after the autoroll. The image now
copies caddy without the capability (it listens on 8080 and needs none),
and the CI check runs the image locked down the same way.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
littlefox referenced this pull request from a commit 2026-10-22 14:11:06 +00:00
Sign in to join this conversation.
No description provided.