# market-screener.conf # Drop this in /etc/nginx/sites-available/ and symlink to sites-enabled/ # Replace YOUR_DOMAIN with your actual domain or server IP. upstream market_screener_ui { server 127.0.0.1:3001; } upstream market_screener_api { server 127.0.0.1:3000; } server { listen 80; server_name YOUR_DOMAIN; # Redirect HTTP → HTTPS (uncomment once you have a cert) # return 301 https://$host$request_uri; # --- API routes --- location /api/ { proxy_pass http://market_screener_api; 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; proxy_read_timeout 60s; } location /health { proxy_pass http://market_screener_api; } # Polygon / other webhook paths hitting /webhooks/* location /webhooks/ { proxy_pass http://market_screener_api; 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; proxy_read_timeout 30s; } # --- SvelteKit UI (everything else) --- location / { proxy_pass http://market_screener_ui; proxy_http_version 1.1; # Required for SvelteKit HMR in dev; harmless in prod proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; 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_read_timeout 60s; } } # --- HTTPS block (uncomment + fill in after running certbot) --- # server { # listen 443 ssl http2; # server_name YOUR_DOMAIN; # # ssl_certificate /etc/letsencrypt/live/YOUR_DOMAIN/fullchain.pem; # ssl_certificate_key /etc/letsencrypt/live/YOUR_DOMAIN/privkey.pem; # ssl_protocols TLSv1.2 TLSv1.3; # ssl_ciphers HIGH:!aNULL:!MD5; # # location /api/ { # proxy_pass http://market_screener_api; # 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; # } # # location / { # proxy_pass http://market_screener_ui; # 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; # } # }