hermes-backup/daily/2026-04-28_203212/skills/devops/caddyfile-ro-bind-mount-patch/SKILL.md
How to patch a Caddyfile when it is bind-mounted read-only into the Caddy container
npx skillsauth add ariffazil/openclaw-workspace caddyfile-ro-bind-mount-patchInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Patching /root/arifOS/Caddyfile (source) does NOT update what a running Caddy container sees when the file is bind-mounted as read-only (ro).
docker exec caddy cat /etc/caddy/Caddyfile shows OLD content after patch reports successdocker cp <file> caddy:/etc/caddy/Caddyfile fails with: unlinkat ... device or resource busydocker exec caddy caddy reloadro from host /root/arifOS/Caddyfile → container /etc/caddy/Caddyfile:roStep 1: Patch the source file as normal:
patch /root/arifOS/Caddyfile <old> <new>
Step 2: Restart the Caddy container so it re-reads the source mount:
docker restart caddy
Then verify:
sleep 3 && curl -s https://arifos.arif-fazil.com/health
Read-only bind mounts are enforced by the Linux kernel at the mount point. The container's view of the file is snapshot-at-start-time. A reload alone doesn't re-read the source — only a full container restart does.
Always confirm the container's actual config after patching:
docker exec caddy grep "reverse_proxy arifosmcp" /etc/caddy/Caddyfile
If it still shows old value → restart the container.
/root/arifOS/Caddyfile → /etc/caddy/Caddyfile:ro (Caddyfile, read-only mount)/root/sites/ → /var/www/html:ro (webroot, read-only mount)/root/volumes/caddy/data → /data (Caddy data dir)/root/volumes/caddy/config → /config (Caddy config dir)testing
OpenClaw edge agent bridge — operational triage, doctor, restart, and A2A bridge routing for the federation edge (Telegram surface). USE WHEN: "openclaw unhealthy", "gateway down", "edge bot not responding", "a2a bridge disconnected", "watchdog tripped", "openclaw doctor", "openclaw restart". NOT for token/security audit — use FORGE-telegram-audit.
tools
Generate images, videos, TTS, voice clone, and music via MiniMax MCP server. Use when user asks to "draw", "generate image", "create picture", "make a photo", "text to image", "image generation".
testing
Single load-bearing constitutional-judgment skill. Routes all F1–F13, verdict, hold, seal, scope, authority and floor-check calls through the live arif_judge surface. Replaces 7 overlapping predecessors (arifos-constitutional-judge, arifos-constitutional-judge, arifos-constitutional-judge, arifos-constitutional-judge, arifos-constitutional-judge, arifos-constitutional-judge, arifos-constitutional-judge).
development
MANDATORY LSP grounding gate BEFORE any code mutation on .ts, .py, .js, .tsx, .jsx files. Forces the agent to read real-time compiler diagnostics and structural project context before editing — eliminating blind guesses and anchoring every mutation in F2 (TRUTH). Routes through arifOS kernel (:8088) for centralized gate logic.