# Beispiel nginx-Konfiguration fuer Mini-Cloud mit OnlyOffice # Anpassen: cloud.example.com und office.example.com durch eigene Domains ersetzen # Mini-Cloud server { listen 443 ssl http2; server_name cloud.example.com; ssl_certificate /etc/letsencrypt/live/cloud.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/cloud.example.com/privkey.pem; client_max_body_size 0; # Kein Upload-Limit (wird von Flask gesteuert) location / { proxy_pass http://127.0.0.1:5000; 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 (falls spaeter benoetigt) proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } # Server-Sent Events: Puffer aus, lange Read-Timeouts, sonst bricht die # Live-Refresh-Verbindung nach ein paar Sekunden ab. location /api/sync/events { proxy_pass http://127.0.0.1:5000; 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_http_version 1.1; proxy_buffering off; proxy_cache off; proxy_read_timeout 24h; proxy_send_timeout 24h; chunked_transfer_encoding on; } # CalDAV/CardDAV braucht spezielle Methoden (PROPFIND, REPORT, MKCALENDAR) location /dav/ { # Nach 2017 erlaubt nginx die meisten WebDAV-Methoden out of the box. # Wichtig: kein Buffering der Request-Body (PUT groesserer ICS) und # korrekte Forward-Header fuer HTTP-Basic-Auth. proxy_pass http://127.0.0.1:5000; 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_pass_request_headers on; proxy_request_buffering off; client_max_body_size 50M; } location = /.well-known/caldav { return 301 https://$host/dav/; } location = /.well-known/carddav { return 301 https://$host/dav/; } } # OnlyOffice Document Server (optional) # Nur noetig wenn OnlyOffice in docker-compose aktiviert ist server { listen 443 ssl http2; server_name office.example.com; ssl_certificate /etc/letsencrypt/live/office.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/office.example.com/privkey.pem; location / { proxy_pass http://127.0.0.1:8080; 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_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } # HTTP -> HTTPS Redirect server { listen 80; server_name cloud.example.com office.example.com; return 301 https://$host$request_uri; }