version: '3.8' services: how-to-claude: build: . container_name: how-to-claude restart: unless-stopped # Caddy Docker Proxy labels labels: caddy: how-to-claude.your-domain.com # Replace with your actual domain caddy.reverse_proxy: "{{upstreams 80}}" caddy.header: "/ X-Robots-Tag noindex" # Remove this if you want search engines to index # Health check healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:80/health"] interval: 30s timeout: 10s retries: 3 start_period: 40s # Security: run as non-root user user: "101:101" # nginx user # Read-only root filesystem for security read_only: true # Temporary filesystems for nginx tmpfs: - /var/cache/nginx:noexec,nosuid,size=100m - /var/run:noexec,nosuid,size=100m - /tmp:noexec,nosuid,size=100m networks: default: external: name: caddy