Added "Nginx Proxy Manager" as a reverse proxy. Also added workaround for websockets disconnecting

Fabian Ommer
2025-11-27 00:17:49 +01:00
parent c6394562b3
commit 43af8676f7

@@ -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 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. 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. 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:
<img width="545" height="647" alt="grafik" src="https://github.com/user-attachments/assets/de807b45-27d4-438f-96d2-9163bed9a658" />
Then under the SSL tab select your certificate and enable "Force SSL". All other options are optional:
<img width="547" height="371" alt="grafik" src="https://github.com/user-attachments/assets/4d4891f5-339b-4a64-b313-29e28b95ebd0" />
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.
<img width="546" height="459" alt="grafik" src="https://github.com/user-attachments/assets/f62d2f0f-5bbf-497a-9d94-0650fa10a35c" />
# Apache # Apache
Below is an example of an apache2 conf file that you may customize to fit your environment and needs. Below is an example of an apache2 conf file that you may customize to fit your environment and needs.