# Open SWE dashboard frontend (TanStack Start SPA) + scoped API proxy. # RETIRED on-prem VM variant — kept for on-prem-contrast reference only. The LIVE # AWS nginx site is the AMI template deploy/ami/templates/open-swe.nginx.conf # (rendered from an @@SERVER_NAME@@ token at first boot). See DEPLOYMENT.md. # # nginx is the security boundary: ONLY /dashboard/api/* reaches the backend; # the unauthenticated LangGraph agent API (/threads,/runs,/assistants,/store) is NOT proxied. server { listen 80 default_server; listen [::]:80 default_server; server_name openswe.seahaven.com; root /var/www/openswe; index _shell.html; # ALB health check location = /healthz { default_type text/plain; return 200 "ok\n"; } # Dashboard API + OAuth callback -> backend webapp on :2024 (the ONLY proxied path) location /dashboard/api/ { proxy_pass http://127.0.0.1:2024; 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 https; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 300s; } # Static assets + SPA shell fallback (client-side routing) location / { try_files $uri $uri/ /_shell.html; } }