# Nginx dev proxy: combines live Vite assets + backend API # Exposes :8833 so you can point your reverse proxy there for live redesign worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; map $http_upgrade $connection_upgrade { default upgrade; '' close; } upstream backend { server samcloud-filebrowser:8080; # existing Go backend } upstream frontend_dev { server frontend-dev:5173; # Vite dev server } server { listen 8383; server_name _; # API & upload routes direct to backend location ~ ^/(api|login|share|shares|static|tus|resources) { proxy_pass http://backend; 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; } # WebSocket for command channel location /api/command { proxy_pass http://backend/api/command; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } # Everything else → live Vite dev assets location / { proxy_pass http://frontend_dev; 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; } } }