Files
zwischenablage-server/docs/eigener-reverse-proxy.md
2026-10-16 15:55:14 +02:00

2.1 KiB
Raw Permalink Blame History

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

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:

client_max_body_size 1100m;
proxy_request_buffering off;
proxy_read_timeout 3600s;

Traefik (Labels am Service netclip)

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
}