# Minimal nginx configuration for AppFlowy-Cloud # Self Hosted AppFlowy Cloud user should alter this file to suit their needs events { worker_connections 1024; } http { map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 8080; # https://github.com/nginxinc/nginx-prometheus-exporter location = /stub_status { stub_status; } } server { ssl_certificate /etc/nginx/ssl/certificate.crt; ssl_certificate_key /etc/nginx/ssl/private_key.key; listen 80; listen 443 ssl; # GoTrue location /gotrue/ { rewrite ^/gotrue(/.*)$ $1 break; proxy_pass http://gotrue:9999; } # WebSocket location /ws { proxy_pass http://appflowy_cloud:8000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $host; proxy_read_timeout 86400; } # AppFlowy-Cloud location /api { proxy_set_header X-Request-Id $request_id; proxy_pass http://appflowy_cloud:8000; } # Minio Web UI # Derive from: https://min.io/docs/minio/linux/integrations/setup-nginx-proxy-with-minio.html location /minio/ { rewrite ^/minio/(.*) /$1 break; proxy_set_header Host $http_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-NginX-Proxy true; ## This is necessary to pass the correct IP to be hashed real_ip_header X-Real-IP; proxy_connect_timeout 300; ## To support websockets in MinIO versions released after January 2023 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # Some environments may encounter CORS errors (Kubernetes + Nginx Ingress) # Uncomment the following line to set the Origin request to an empty string # proxy_set_header Origin ''; chunked_transfer_encoding off; proxy_pass http://minio:9001; } # PgAdmin location /pgadmin/ { proxy_set_header X-Script-Name /pgadmin; proxy_set_header X-Scheme $scheme; proxy_set_header Host $host; proxy_pass http://pgadmin:80/; proxy_redirect off; } # Portainer location /portainer/ { proxy_pass http://portainer:9000/; } # Admin Frontend location / { proxy_set_header X-Scheme $scheme; proxy_set_header Host $host; proxy_pass http://admin_frontend:3000; } } }