services: narty27: image: nginx:alpine container_name: narty27 restart: unless-stopped ports: # Next free port in the PIHA 82x0 static-HTTP block # (8210 paperless, 8220 nextcloud, 8230 kb-query). - "8240:80" volumes: # Content is personal and lives ONLY in this volume — never in the repo. # Read-only: nginx just serves it; writes go through the helper-container # procedure in README.md (docker cp cannot write into a :ro mount). - narty27_content:/usr/share/nginx/html:ro # busybox wget — nginx:alpine ships no curl. Serves the personal viz.html; # index.html is a second copy of the same file so the bare root works. healthcheck: test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://127.0.0.1/viz.html"] interval: 30s timeout: 10s retries: 5 start_period: 5s volumes: narty27_content: