summaryrefslogtreecommitdiff
path: root/nginx
diff options
context:
space:
mode:
authorTyler Hoang <tyler@tylerhoang.xyz>2026-05-19 01:24:28 -0700
committerTyler Hoang <tyler@tylerhoang.xyz>2026-05-19 01:24:28 -0700
commitb50c46d5bdbb1bd5e06a96a66b0696c1145ff4a9 (patch)
treed555699c4c8ad46c098032b7e6ac261782257b9c /nginx
parent1b9d8f85d5c703106c78548ed1898adea078fab0 (diff)
feat: add nginx config with /api/ proxy block for VPS deployment
Routes /api/ to the FastAPI backend (8001) so NEXT_PUBLIC_API_BASE_URL can be set to the public domain instead of localhost. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'nginx')
-rw-r--r--nginx/prism.tylerhoang.xyz.conf53
1 files changed, 53 insertions, 0 deletions
diff --git a/nginx/prism.tylerhoang.xyz.conf b/nginx/prism.tylerhoang.xyz.conf
new file mode 100644
index 0000000..c19183d
--- /dev/null
+++ b/nginx/prism.tylerhoang.xyz.conf
@@ -0,0 +1,53 @@
+server {
+ server_name prism.tylerhoang.xyz;
+
+ access_log /var/log/nginx/prism.tylerhoang.xyz.access.log;
+ error_log /var/log/nginx/prism.tylerhoang.xyz.error.log;
+
+ location /api/ {
+ proxy_pass http://127.0.0.1:8001/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;
+ }
+
+ location / {
+ proxy_pass http://127.0.0.1:3001;
+ 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_set_header X-Forwarded-Host $host;
+ proxy_set_header X-Forwarded-Port $server_port;
+
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "upgrade";
+
+ proxy_read_timeout 86400;
+ proxy_send_timeout 86400;
+ proxy_buffering off;
+ }
+
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/prism.tylerhoang.xyz/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/prism.tylerhoang.xyz/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+}
+
+server {
+ if ($host = prism.tylerhoang.xyz) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+ server_name prism.tylerhoang.xyz;
+
+ listen [::]:80;
+ listen 80;
+ return 404; # managed by Certbot
+}