Docker vs Kubernetes
Kubernetes vs. Docker – Warum du beides brauchst und nicht gegeneinander ausspielst Die Frage, ob man Kubernetes oder Docker verwenden sollte, ist vollkommen falsch gestellt. Die beiden Technologien …
In diesem Beitrag zeigen wir dir, wie du Paperless-ngx mit Docker Compose und Traefik bereitstellst und es über einen DNS-Eintrag erreichst.
In diesem Beitrag zeigen wir dir, wie du Paperless-ngx mit Docker Compose und Traefik bereitstellst und es über einen DNS-Eintrag wie https://docs.deine-domain.org
erreichst. Diese Konfiguration ermöglicht eine einfache und sichere Bereitstellung deiner digitalen Dokumentenmanagement-Plattform.
Traefik ist ein dynamischer Reverse-Proxy und Load-Balancer, der speziell für Microservices und moderne Cloud-native Anwendungen entwickelt wurde. Er ermöglicht die automatische Service-Erkennung und Verwaltung von SSL/TLS-Zertifikaten. Für weitere Details und ein umfassendes Tutorial besuche unser Traefik-Tutorial.
Paperless-ngx ist eine Open-Source-Plattform für digitales Dokumentenmanagement, die es ermöglicht, Papierdokumente zu digitalisieren und effizient zu verwalten. Mit Paperless-ngx kannst du gescannte Dokumente durchsuchen, kategorisieren und in einer zentralen Datenbank speichern. Die Plattform bietet eine benutzerfreundliche Oberfläche und unterstützt die Integration mit verschiedenen Drittanbieter-Tools.
Bevor du mit der Einrichtung fortfährst, musst du sicherstellen, dass der DNS-Eintrag für docs.deine-domain.org
korrekt gesetzt ist. Dieser Eintrag sollte auf die IP-Adresse des Servers verweisen, auf dem Traefik läuft. Nutze hierfür deinen DNS-Verwaltungsdienst, wie beispielsweise Cloudflare, um den entsprechenden Eintrag hinzuzufügen.
Docker ermöglicht es, Anwendungen in isolierten Containern zu betreiben, was ihre Bereitstellung und Skalierung erheblich vereinfacht. Docker Compose ist ein Tool, mit dem du Multi-Container-Anwendungen definieren und starten kannst. Es hilft dabei, komplexe Anwendungsumgebungen mit wenigen Befehlen zu verwalten.
Der Redis-Dienst wird als Message-Broker für Paperless-ngx verwendet. Hier sind die relevanten Konfigurationsdetails:
services:
broker:
image: docker.io/library/redis:7
restart: unless-stopped
volumes:
- redisdata:/data
networks:
- paperless
Dieser Abschnitt definiert den Redis-Dienst, der als schneller, in-Memory-Datenstruktur-Server fungiert und von Paperless-ngx für die Verwaltung von Nachrichten verwendet wird. Die Konfiguration umfasst die Volumenangabe für Daten und die Zuweisung zum Paperless-Netzwerk.
Der PostgreSQL-Dienst speichert die Daten für Paperless-ngx. Hier sind die relevanten Konfigurationsdetails:
db:
image: docker.io/library/postgres:15
restart: unless-stopped
volumes:
- pgdata:/var/lib/postgresql/data
environment:
POSTGRES_DB: paperless
POSTGRES_USER: paperless
POSTGRES_PASSWORD: paperless
networks:
- paperless
Dieser Abschnitt definiert den PostgreSQL-Datenbankdienst, der als Datenspeicher für Paperless-ngx fungiert. Die Konfiguration umfasst Volumen für Daten, Umgebungsvariablen zur Datenbankkonfiguration und die Netzwerkzuweisung.
Der Paperless-ngx-Dienst stellt die Dokumentenmanagement-Plattform bereit und wird über Traefik erreichbar gemacht:
webserver:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
restart: unless-stopped
depends_on:
- db
- broker
labels:
- "traefik.enable=true"
- "traefik.http.routers.paperless.rule=Host(`docs.deine-domain.org`)"
- "traefik.http.routers.paperless.entrypoints=websecure"
- "traefik.http.routers.paperless.tls.certresolver=lets-encrypt"
- "traefik.http.services.paperless.loadbalancer.server.port=8000"
volumes:
- data:/usr/src/paperless/data
- media:/usr/src/paperless/media
- ./export:/usr/src/paperless/export
- ./consume:/usr/src/paperless/consume
env_file: .env
environment:
PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_DBHOST: db
networks:
- paperless
- web
Dieser Abschnitt definiert den Paperless-ngx-Dienst, der von den Diensten PostgreSQL und Redis abhängt. Die Konfiguration umfasst die Volumenangaben für Daten, Medien und verschiedene Verzeichnisse sowie Umgebungsvariablen für die Verbindung zur Datenbank und zum Redis-Server. Die Traefik-Labels sind entscheidend, um den Dienst korrekt zu konfigurieren und den Datenverkehr entsprechend weiterzuleiten.
Die Traefik-Labels sind entscheidend, um den Dienst korrekt zu konfigurieren und den Datenverkehr entsprechend weiterzuleiten:
labels:
- "traefik.enable=true"
- "traefik.http.routers.paperless.rule=Host(`docs.deine-domain.org`)" # Ersetze 'deine-domain.org' mit deiner tatsächlichen Domain
- "traefik.http.routers.paperless.entrypoints=websecure"
- "traefik.http.routers.paperless.tls.certresolver=lets-encrypt"
- "traefik.http.services.paperless.loadbalancer.server.port=8000"
- "traefik.docker.network=web"
networks:
- web
- paperless
traefik.enable=true
: Aktiviert Traefik für diesen Dienst, sodass Traefik den Dienst überwacht und Anfragen weiterleitet.traefik.http.routers.paperless.rule=Host('docs.deine-domain.org')
: Definiert die Bedingung für die URL-Zuordnung, die festlegt, dass Anfragen an docs.deine-domain.org
an den Paperless-ngx-Dienst weitergeleitet werden.traefik.http.routers.paperless.entrypoints=websecure
: Weist Traefik an, diesen Dienst über den websecure
EntryPoint bereitzustellen, der für HTTPS-Verkehr verwendet wird.traefik.http.routers.paperless.tls.certresolver=lets-encrypt
: Gibt an, dass Traefik Let’s Encrypt verwendet, um den HTTPS-Verkehr zu sichern.traefik.http.services.paperless.loadbalancer.server.port=8000
: Gibt den internen Port des Paperless-ngx-Dienstes an, auf den Traefik den Verkehr weiterleitet.traefik.docker.network=web
: Gibt das Docker-Netzwerk an, das von Traefik verwendet wird, um die Verbindungen zu verwalten.Die Netzwerkeinstellungen definieren das Netzwerk, das Traefik für die Verbindung der Dienste verwendet:
networks:
web:
external: true # Verwendet ein externes Netzwerk, das von Traefik verwaltet wird
paperless:
Dieser Abschnitt definiert die Netzwerke, die von Traefik und den Paperless-ngx-Diensten verwendet werden, um die verschiedenen Dienste miteinander zu verbinden und die Verbindungen zu verwalten.
Mit dieser Anleitung kannst du Paperless-ngx effizient und sicher mit Traefik und Docker bereitstellen. Die Konfiguration ist flexibel und kann leicht an individuelle Anforderungen angepasst werden. Für weitere Fragen oder eine professionelle Betreuung schau in unseren Discord-Channel. Wir unterstützen dich gerne bei der optimalen Einrichtung und Verwaltung deiner Anwendungen.
Hier ist die vollständige docker-compose.yml
Datei für die Paperless-ngx-Installation:
version: "3.4"
services:
broker:
image: docker.io/library/redis:7
restart: unless-stopped
volumes:
- redisdata:/data
networks:
- paperless
db:
image: docker.io/library/postgres:15
restart: unless-stopped
volumes:
- pgdata:/var/lib/postgresql/data
environment:
POSTGRES_DB: paperless
POSTGRES_USER: paperless
POSTGRES_PASSWORD: paperless
networks:
- paperless
webserver:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
restart: unless-stopped
depends_on:
- db
- broker
labels:
- "traefik.enable=true"
- "traefik.http.routers.paperless.rule=Host(`docs.deine-domain.org`)" # Ersetze 'deine-domain.org' mit deiner tatsächlichen Domain
- "traefik.http.routers.paperless.entrypoints=websecure"
- "traefik.http.routers.paperless.tls.certresolver=lets-encrypt"
- "traefik.http.services.paperless.loadbalancer.server.port=8000"
- "traefik.docker.network=web"
volumes:
- data:/usr/src/paperless/data
- media:/usr/src/paperless/media
- ./export:/usr/src/paperless/export
- ./consume:/usr/src/paperless/consume
env_file: .env
environment:
PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_DBHOST: db
networks:
- paperless
- web
volumes:
data:
media:
pgdata:
redisdata:
networks:
web:
external: true
paperless:
In unserer Discord Community findest du Antworten auf deine Fragen rund um das Thema ayedo, Kubernetes und Open Source. Hier erfährst du in Realtime was es Neues bei ayedo und unseren Partnern gibt und hast die Möglichkeit mit unserem Team in direkten Kontakt zu treten.
Kubernetes vs. Docker – Warum du beides brauchst und nicht gegeneinander ausspielst Die Frage, ob man Kubernetes oder Docker verwenden sollte, ist vollkommen falsch gestellt. Die beiden Technologien …
Einleitung In der heutigen Softwareentwicklung, in der KI-gestützte Tools wie GitHub Copilot und ähnliche Assistenten unterstützen, suchen viele Entwickler nach flexibleren und …
Hochverfügbare SaaS-Infrastruktur für mehr als 2 Milliarden Requests pro Monat In der heutigen digitalisierten Welt sind Ausfallsicherheit und Skalierbarkeit unverzichtbare Merkmale jeder …
![Schutz vor Cyber-Bedrohungen: Ein umfassender Leitfaden zum Cyber Risiko Check] (ein-umfassender-leitfaden-zum-cyber-risiko-check.png) Ein effektiver Weg, um diese Risiken zu minimieren, ist der …
Compliance leicht gemacht: Die ISO27001 als Schlüssel zur Einhaltung gesetzlicher Vorschriften Die Einhaltung gesetzlicher Anforderungen und Datenschutzrichtlinien ist für Unternehmen eine ständige …
Interessiert an weiteren Inhalten? Hier gehts zu allen Blogs →