Nachdem wir paperless-ngx mit Docker-Compose und der standardmäßigen Installationsroutine installiert haben, gibt es ein paar empfehlenswerte Aufgaben. Eine davon: Verschlüsselung in transit, also Verschlüsselung bei der Übertragung von Daten, einrichten. SSL/TLS/HTTPS sind die passenden Schlagworte. Mit zwei relativ einfachen Änderungen können wir dies einrichten:
Schritt 1: Docker-Compose Override Textdatei einrichten – Texteditor öffnen
nano /home/user/paperless-ngx/docker-compose.override.yml
Schritt 2: Docker-Compose Override Textdatei einrichten – Text einfügen
services:
traefik:
image: "traefik:v3.5"
container_name: "traefik"
command:
- "--api=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entryPoints.websecure.address=:443"
- "--entryPoints.websecure.transport.respondingTimeouts.readTimeout=24h"
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
- "--certificatesresolvers.myresolver.acme.email=info@manage-it-for.me"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
labels:
- "traefik.enable=true"
- "traefik.http.routers.dashboard.rule=Host(`db.coders-home.de`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`))"
- "traefik.http.routers.dashboard.service=api@internal"
- "traefik.http.routers.dashboard.middlewares=auth"
- "traefik.http.routers.dashboard.entrypoints=websecure"
- "traefik.http.middlewares.auth.basicauth.users=admin:$$apr1$$slfgyrx1$$lVgrg32ghLPscs.1Y0dIc."
ports:
- "443:443"
volumes:
- certs:/letsencrypt
- "/var/run/docker.sock:/var/run/docker.sock:ro"
webserver:
labels:
- "traefik.enable=true"
- "traefik.http.routers.paperless.rule=Host(`pl.coders-home.de`)"
- "traefik.http.routers.paperless.entrypoints=websecure"
- "traefik.http.routers.paperless.tls.certresolver=myresolver"
- "traefik.http.routers.paperless.middlewares=limit@docker"
- "traefik.http.middlewares.limit.buffering.maxRequestBodyBytes=100737418240"
- "traefik.http.middlewares.limit.buffering.memRequestBodyBytes=200000000"
- "traefik.http.middlewares.limit.buffering.maxResponseBodyBytes=100737418240"
- "traefik.http.middlewares.limit.buffering.memResponseBodyBytes=200000000"
- "traefik.http.middlewares.testheader.headers.stsSeconds=15552000"
volumes:
certs:
Gespeichert wird die Datei in nano mittels „Strg+x“ dann „y“ dann „Enter“.
Schritt 3: paperless URL ändern
In der Datei docker-compose.env müssen wir nun die URL ändern. Das folgende Kommando fügt die Einstellung hinzu, sofern nötig. Oder ändert die bestehende Einstellung, wenn bereits vorhanden.
grep -q '^PAPERLESS_URL=' docker-compose.env && sed -i 's|^PAPERLESS_URL=.*|PAPERLESS_URL=https://pl.coders-home.de|' docker-compose.env || echo 'PAPERLESS_URL=https://pl.coders-home.de' >> docker-compose.env
Wichtig bei Schritt 2 und 3: Alle Vorkommnisse von „pl.coders-home.de“ natürlich mit eurer Domain oder Subdomain ersetzen.
Schritt 4: Docker-Compose neustarten
Um alle Änderungen anzuwenden:
docker compose -f /home/user/paperless-ngx/docker-compose.yml up -d
Nach ein paar Augenblicken ist die Instanz unter der neuen URL mit SSL verfügbar. Ein bisschen Zeit muss deshalb vergehen, weil das SSL-Zertifikat via traefik von Lets Encrypt angefordert werden muss. In der Zwischenzeit liefert traefik ein Standardzertifikat aus, welches in Webbrowsern eine Fehlermeldung erzeugt.