Files
microdao-daarion/nginx/all-in-one.conf
Apple 3de3c8cb36 feat: Add presence heartbeat for Matrix online status
- matrix-gateway: POST /internal/matrix/presence/online endpoint
- usePresenceHeartbeat hook with activity tracking
- Auto away after 5 min inactivity
- Offline on page close/visibility change
- Integrated in MatrixChatRoom component
2025-11-27 00:19:40 -08:00

273 lines
8.6 KiB
Plaintext

# ============================================================================
# DAARION ALL-IN-ONE NGINX GATEWAY
# Phase INFRA — Single entry point for all services
# ============================================================================
upstream frontend {
server frontend:80;
}
upstream auth_service {
server auth-service:7011;
}
upstream pdp_service {
server pdp-service:7012;
}
upstream usage_engine {
server usage-engine:7013;
}
upstream agents_service {
server agents-service:7014;
}
upstream microdao_service {
server microdao-service:7015;
}
upstream dao_service {
server dao-service:7016;
}
upstream living_map_service {
server living-map-service:7017;
}
upstream messaging_service {
server messaging-service:7004;
}
upstream city_service {
server city-service:7001;
}
upstream space_service {
server space-service:7002;
}
upstream matrix_synapse {
server matrix-synapse:8008;
}
# ============================================================================
# Main Server Block
# ============================================================================
server {
listen 80;
server_name localhost;
# Increase buffer sizes for large requests
client_max_body_size 100M;
client_body_buffer_size 128k;
# Timeouts
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
# ========================================================================
# FRONTEND (React SPA)
# ========================================================================
location / {
proxy_pass http://frontend;
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;
# SPA fallback
try_files $uri $uri/ /index.html;
}
# ========================================================================
# CORE SERVICES API
# ========================================================================
# Auth Service
location /api/auth/ {
proxy_pass http://auth_service/;
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;
}
# PDP Service (Authorization)
location /api/pdp/ {
proxy_pass http://pdp_service/;
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;
}
# Usage Engine
location /api/usage/ {
proxy_pass http://usage_engine/;
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;
}
# ========================================================================
# APPLICATION SERVICES API
# ========================================================================
# Agents Service (Agent Hub)
location /api/agents/ {
proxy_pass http://agents_service/;
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;
}
# MicroDAO Service
location /api/microdao/ {
proxy_pass http://microdao_service/;
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;
}
# DAO Service (Governance)
location /api/dao/ {
proxy_pass http://dao_service/;
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;
}
# Living Map Service
location /api/living-map/ {
proxy_pass http://living_map_service/living-map/;
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;
}
# Messaging Service
location /api/messaging/ {
proxy_pass http://messaging_service/;
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;
}
# City Service
location /api/city/ {
proxy_pass http://city_service/api/city/;
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;
}
# Space Service
location /api/space/ {
proxy_pass http://space_service/api/space/;
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 ENDPOINTS
# ========================================================================
# Living Map WebSocket
location /ws/living-map/ {
proxy_pass http://living_map_service/living-map/stream;
proxy_http_version 1.1;
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 86400;
}
# Agents Events WebSocket
location /ws/agents/ {
proxy_pass http://agents_service/ws/agents/stream;
proxy_http_version 1.1;
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 86400;
}
# Messaging WebSocket
location /ws/messaging/ {
proxy_pass http://messaging_service/ws;
proxy_http_version 1.1;
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 86400;
}
# ========================================================================
# MATRIX FEDERATION (Optional, for external federation)
# ========================================================================
location /_matrix {
proxy_pass http://matrix_synapse;
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;
}
# ========================================================================
# HEALTH CHECK
# ========================================================================
location /health {
access_log off;
return 200 "healthy\n";
add_header Content-Type text/plain;
}
# ========================================================================
# ERROR PAGES
# ========================================================================
error_page 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
# ============================================================================
# HTTPS Server Block (for production with SSL)
# ============================================================================
# server {
# listen 443 ssl http2;
# server_name your-domain.com;
#
# ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;
#
# # ... same locations as above ...
# }