87 lines
2.9 KiB
Plaintext
87 lines
2.9 KiB
Plaintext
# 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;
|
|
# }
|
|
# }
|