first commit
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
# NetClip hinter einem vorhandenen Reverse-Proxy
|
||||
|
||||
In der `.env` `COMPOSE_PROFILES=` leer lassen – dann startet nur der NetClip-Server auf `PORT`
|
||||
(Standard 8080). Läuft der Proxy auf demselben Host, zusätzlich `BIND_ADDR=127.0.0.1` setzen.
|
||||
|
||||
Wichtig für jeden Proxy:
|
||||
- **WebSocket-Upgrade** durchreichen (Pfad `/api/v1/rooms/<id>/ws`)
|
||||
- **lange Timeouts** für die WebSocket-Verbindung (Clients pingen alle 30 s)
|
||||
- **Upload-Größe** mindestens `MAX_CLIP_MB` (plus etwas Luft)
|
||||
- Puffern von Uploads abschalten (sonst landet jeder Upload erst komplett im Proxy)
|
||||
|
||||
## nginx
|
||||
|
||||
```nginx
|
||||
map $http_upgrade $connection_upgrade {
|
||||
default upgrade;
|
||||
'' close;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 443 ssl;
|
||||
http2 on;
|
||||
server_name clip.example.de;
|
||||
|
||||
ssl_certificate /etc/letsencrypt/live/clip.example.de/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/clip.example.de/privkey.pem;
|
||||
|
||||
client_max_body_size 1100m;
|
||||
proxy_request_buffering off;
|
||||
proxy_buffering off;
|
||||
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:8080;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $connection_upgrade;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_read_timeout 3600s;
|
||||
proxy_send_timeout 3600s;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Nginx Proxy Manager
|
||||
|
||||
Proxy-Host anlegen → Forward `http://<host>:8080`, **Websockets Support** einschalten.
|
||||
Unter *Advanced*:
|
||||
|
||||
```nginx
|
||||
client_max_body_size 1100m;
|
||||
proxy_request_buffering off;
|
||||
proxy_read_timeout 3600s;
|
||||
```
|
||||
|
||||
## Traefik (Labels am Service `netclip`)
|
||||
|
||||
```yaml
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.routers.netclip.rule=Host(`clip.example.de`)
|
||||
- traefik.http.routers.netclip.entrypoints=websecure
|
||||
- traefik.http.routers.netclip.tls.certresolver=letsencrypt
|
||||
- traefik.http.services.netclip.loadbalancer.server.port=8080
|
||||
```
|
||||
|
||||
Traefik reicht WebSockets automatisch durch und begrenzt die Upload-Größe standardmäßig nicht.
|
||||
|
||||
## Caddy
|
||||
|
||||
```
|
||||
clip.example.de {
|
||||
reverse_proxy 127.0.0.1:8080
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user