From 01d9aec655133e02872d3810061dbbfc418d70cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20P=C3=B6ttker?= Date: Sat, 9 May 2026 10:27:30 +0200 Subject: [PATCH] feat: configure nginx proxy and response headers to support SSE for label print agent --- .../label-print-agent.controller.ts | 3 ++- paperless-frontend/nginx.conf | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/paperless-backend/src/label-print-agent/label-print-agent.controller.ts b/paperless-backend/src/label-print-agent/label-print-agent.controller.ts index 55ce0a0..b0114a5 100644 --- a/paperless-backend/src/label-print-agent/label-print-agent.controller.ts +++ b/paperless-backend/src/label-print-agent/label-print-agent.controller.ts @@ -51,7 +51,8 @@ export class LabelPrintAgentController { // Agent: SSE-Stream für neue Druckaufträge @Sse('events') - sseEvents(): Observable { + sseEvents(@Res({ passthrough: true }) res: Response): Observable { + res.setHeader('X-Accel-Buffering', 'no'); return this.service.newJob$.pipe( map(() => ({ data: { type: 'label-job-available' } } as MessageEvent)), ); diff --git a/paperless-frontend/nginx.conf b/paperless-frontend/nginx.conf index 916284a..fa4cb7f 100644 --- a/paperless-frontend/nginx.conf +++ b/paperless-frontend/nginx.conf @@ -4,6 +4,21 @@ server { root /usr/share/nginx/html; index index.html; + # ── SSE-Endpunkt (kein Puffern, langer Timeout) ──────────── + location /api/label-print-agent/events { + proxy_pass http://backend:3100/api/label-print-agent/events; + proxy_http_version 1.1; + proxy_set_header Connection ''; + 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_buffering off; + proxy_cache off; + proxy_read_timeout 24h; + chunked_transfer_encoding on; + } + # ── API Reverse Proxy → Backend-Container ────────────────── # Im Docker-Netzwerk ist "backend" der Service-Name aus docker-compose. location /api/ {