server { listen 80; server_name ouroboros.wavult.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name ouroboros.wavult.com; ssl_certificate /etc/letsencrypt/live/ouroboros.wavult.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/ouroboros.wavult.com/privkey.pem; root /opt/amos/public; # Design system location /_design-system/ { alias /opt/amos/public/_design-system/; } location /_brand/ { alias /opt/amos/public/_brand/; } # Auth API -> AMOS location /api/auth/ { proxy_pass http://127.0.0.1:3100; proxy_set_header Host amos.wavult.com; 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; } # AAMOS API -> AMOS location /api/aamos/ { proxy_pass http://127.0.0.1:3100; proxy_set_header Host amos.wavult.com; 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; } # Drilldown API -> AMOS location /api/drilldown/ { proxy_pass http://127.0.0.1:3100; proxy_set_header Host amos.wavult.com; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto https; } # Multi-org CRUD API — Node.js on 3105 (POST/PATCH/DELETE/GET all) location = /api/v1/organizations { proxy_pass http://127.0.0.1:3105; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto https; } # Ouroboros Orchestration API (ouroboros-orchestration on 3253) location /api/v1/ { proxy_pass http://127.0.0.1:3253; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto https; } # Ouroboros Rust Services location /api/identity/ { proxy_pass http://localhost:4011/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto https; } location /api/finance/ { proxy_pass http://localhost:4002/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto https; } location /api/people/ { proxy_pass http://localhost:4003/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto https; } location /api/commerce/ { proxy_pass http://localhost:4004/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto https; } location /api/time/ { proxy_pass http://localhost:4005/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto https; } location /api/analytics/ { proxy_pass http://localhost:3210/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto https; } # Rot -> Ouroboros hub location = / { return 301 /ouroboros/; } # 404 fallback -> Ouroboros hub error_page 404 =301 /ouroboros/; # Ouroboros-moduler location /ouroboros/ { try_files $uri $uri/ $uri/index.html /ouroboros/index.html; add_header Cache-Control "no-store, no-cache"; } }