# nginx reverse proxy — sits in front of the app container # This config is mounted into the nginx-proxy container in docker-compose. upstream app { # Points to the web service by container name (docker DNS) server web:8080; } server { listen 80; server_name djosen.one www.djosen.one; # Proxy all requests to the app container location / { proxy_pass http://app; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # WebSocket support (not currently used, but forward-looking) proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # Buffering: off for WebGPU/streaming, but on for static is fine. # We serve static from the app container's nginx, so keep this simple. } # Health-check endpoint — used by the webhook deploy script to verify liveness location /health { access_log off; default_type text/plain; return 200 "ok"; } # Security add_header X-Content-Type-Options "nosniff" always; add_header X-Frame-Options "DENY" always; add_header Referrer-Policy "strict-origin-when-cross-origin" always; # Logs access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; }