Zum Hauptinhalt springen
  1. IT-Dokumentation und technische Anleitungen/

Paperless-ngx: Dokumentenmanagement selbst gehostet

Patrick Adams
Autor
Patrick Adams
Auf meinem Blog teile ich mein Wissen zu Open-Source-Lösungen, Docker, Hosting, Backups und Netzwerken – verständlich und direkt umsetzbar.
Inhaltsverzeichnis

Systemvoraussetzungen
#

Ressourcen Paperless
  • CPU 4 Kerne
  • RAM 8192 MB
  • Speicher 64 GB

Updates und Pakete installiere
#

Aktualisiere Linux und installiere mit folgendem Befehl Curl und die Aktuelle Docker Version.

apt apt update && apt upgrade -y && apt install curl -y && curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh -y

Docker-Compose installieren
#

Installiere mit folgendem Befehl via curl die Aktuelle Docker Compose Version.

curl -L https://github.com/docker/compose/releases/download/v$(curl -Ls https://www.servercow.de/docker-compose/latest.php)/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

Dockge installieren
#

Mit diesem Befehl erstellst du die benötigten Verzeichnisse und Installierst die Aktuelle Dockge Version.

mkdir -p /opt/stacks /opt/dockge && cd /opt/dockge && curl https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml --output compose.yaml && docker compose up -d

Dockge öffnen
#

http://localhost:5001

Auf + Compose klicken
#

Zuerst vergibst du unter Allgemein den Stack-Namen paperless-ngx.

Container Dienste in der .yml definieren
#

services:
  broker:
    image: docker.io/library/redis:8
    restart: unless-stopped
    volumes:
      - ./data/redis:/data
  db:
    image: docker.io/library/postgres:17
    restart: unless-stopped
    volumes:
      - ./data/postgres:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: ${PAPERLESS_POSTGRES_DB_NAME}
      POSTGRES_USER: ${PAPERLESS_POSTGRES_DB_USER}
      POSTGRES_PASSWORD: ${PAPERLESS_POSTGRES_DB_PASSWORD}
  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    depends_on:
      - db
      - broker
    ports:
      - 8710:8000
    healthcheck:
      test:
        - CMD
        - curl
        - -fs
        - -S
        - --max-time
        - "2"
        - http://localhost:8000
      interval: 30s
      timeout: 10s
      retries: 5
    volumes:
      - ./data/data:/usr/src/paperless/data
      - ./data/media:/usr/src/paperless/media
      - ./data/export:/usr/src/paperless/export
      - ./data/consume:/usr/src/paperless/consume
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db
      PAPERLESS_SECRET_KEY: ${PAPERLESS_SECRET_KEY}
      PAPERLESS_ADMIN_USER: ${PAPERLESS_ADMIN_USER}
      PAPERLESS_ADMIN_PASSWORD: ${PAPERLESS_ADMIN_PASSWORD}
      PAPERLESS_OCR_LANGUAGE: deu
      USERMAP_UID: 1000
      USERMAP_GID: 1000
networks: {}

Unten rechts unter der compose.yaml müssen dann noch die .env angaben eingefügt werden
#

Tip

Hier kannst du den Platzhalter paperless mit deinen angaben tauschen Starte den Container aber erstmal so um zu sehen ob alles funktioniert.

PAPERLESS_SECRET_KEY=paperless
PAPERLESS_ADMIN_USER=paperless
PAPERLESS_ADMIN_PASSWORD=paperless
PAPERLESS_POSTGRES_DB_NAME=paperless
PAPERLESS_POSTGRES_DB_USER=paperless
PAPERLESS_POSTGRES_DB_PASSWORD=paperless

Speichern und den Stack Deployen
#

Paperless öffnen und einrichten

http://localhost:8710

Verwandte Artikel