From 43af8676f7b4785b7c0242e046f4a0d6119e661f Mon Sep 17 00:00:00 2001 From: Fabian Ommer Date: Thu, 27 Nov 2025 00:17:49 +0100 Subject: [PATCH] Added "Nginx Proxy Manager" as a reverse proxy. Also added workaround for websockets disconnecting --- Using-a-Reverse-Proxy-with-Paperless-ngx.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/Using-a-Reverse-Proxy-with-Paperless-ngx.md b/Using-a-Reverse-Proxy-with-Paperless-ngx.md index 57cf1b3..35b6cf6 100644 --- a/Using-a-Reverse-Proxy-with-Paperless-ngx.md +++ b/Using-a-Reverse-Proxy-with-Paperless-ngx.md @@ -1,4 +1,4 @@ -[Nginx](#nginx) | [Apache](#apache) | [Caddy](#caddy) | [Traefik](#traefik) +[Nginx](#nginx) | [Nginx Proxy Manager](#nginx-proxy-manager-npm) | [Apache](#apache) | [Caddy](#caddy) | [Traefik](#traefik) If you want to expose paperless to the internet, you should hide it behind a reverse proxy with SSL enabled. The officially supported method is Nginx. @@ -63,6 +63,23 @@ Some have found adding the P3P header (`add_header P3P 'CP=""';` see [#817](http Also make sure to enable `Websocket Support` in nginx, see https://github.com/paperless-ngx/paperless-ngx/discussions/10762#discussioncomment-14299568. +# Nginx Proxy Manager (NPM) +In NPM create a new proxy host and enable websockets support: + +grafik + +Then under the SSL tab select your certificate and enable "Force SSL". All other options are optional: + +grafik + +Nginx Proxy Manager uses a timeout of 90s by default. This is fine for loading the webpage but will cut the websocket connection if there are no updates for 90s. To prevent that, the following 2 lines can be added under the Custom Nginx Configuration Tab (settings icon): +```nginx +proxy_send_timeout 600m; +proxy_read_timeout 600m; +``` +Both values can be adjusted. `600m` means that NPM will hold the websocket connection open for 600 minutes. +grafik + # Apache Below is an example of an apache2 conf file that you may customize to fit your environment and needs.