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:
