worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 7860; server_name localhost; # 1. FastAPI Backend API routes location /reset { proxy_pass http://localhost:8000/reset; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /step { proxy_pass http://localhost:8000/step; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /health { proxy_pass http://localhost:8000/health; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /metadata { proxy_pass http://localhost:8000/metadata; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /schema { proxy_pass http://localhost:8000/schema; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /mcp { proxy_pass http://localhost:8000/mcp; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /tasks { proxy_pass http://localhost:8000/tasks; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /diff { proxy_pass http://localhost:8000/diff; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /openapi.json { proxy_pass http://localhost:8000/openapi.json; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /docs { proxy_pass http://localhost:8000/docs; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /redoc { proxy_pass http://localhost:8000/redoc; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /state { proxy_pass http://localhost:8000/state; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /config/custom { proxy_pass http://localhost:8000/config/custom; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } # 2. Next.js Frontend (port 3000) location / { proxy_pass http://localhost:3000; 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; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } } }