Paperless-NGX mit Docker-Compose installieren

Paperless-NGX mit Docker-Compose installieren

Ich habe mich letztens gefragt, wie ich es hinbekommen kann, dass ich eine bessere Struktur in meiner Bürokratie habe. Da ist mir eingefallen, dass mein Kumpel von Paperless erzählt hat. Ein cooles Webtool, dass von jedem Dokument einen OCR-Scan durchführt und man jedes Dokument mit Tags und Kategorien versehen kann.

Ich ging dann auf die Suche, wie man Paperless installiert und habe leider sehr viele veraltete Dokumentationen dazu gefunden, weshalb ich mir gedachte habe, dass es bestimmt gut wäre, wenn ich meine Doku mal selbst aufschreibe.

Ich selbst mache eigentlich alle Dienste, die ich selbst hoste, über Docker. Ich habe Portainer auf meinem Server installiert und betreibe das ganze über die Stacks, die Portainer anbietet. Diese Stacks bieten einen riesen Vorteil, denn ich habe somit alle Container direkt an einem zentralen Ort und kann dort auch über eine schöne Oberfläche die Container bearbeiten. Ich kann die Variablen ändern und sogar direkt die Docker-Compose.yml.

Eigentlich ist es nicht wirklich schwer gewesen Paperless-NGX zu installieren. Ich habe die Docker-Compose aufgebaut, habe meine Daten eingegeben und habe auf Deploy gedrückt.

version: "3.4"
services:
  broker:
    image: redis:6.0
    networks:
      internal:
    restart: unless-stopped

  db:
    image: postgres:13
    networks:
      internal:
    restart: unless-stopped
    volumes:
      - /opt/docker-prod/paperless/pgdata:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: paperless
      POSTGRES_USER: paperless
      POSTGRES_PASSWORD: paperless

  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    networks:
      internal:
    ports:
      - "8000:8000"
    restart: unless-stopped
    depends_on:
      - db
      - broker
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8000"]
      interval: 30s
      timeout: 10s
      retries: 5
    volumes:
      - /opt/docker-prod/paperless/data:/usr/src/paperless/data
      - /opt/docker-prod/paperless/media:/usr/src/paperless/media
   # env_file: docker-compose.env
    environment:
      PAPERLESS_REDIS: redis://paperless-broker-1:6379
      PAPERLESS_DBHOST: paperless-db-1
      PAPERLESS_URL: http://localhost
      PAPERLESS_OCR_LANGUAGE: deu
      PAPERLESS_TIME_ZONE: Europe/Berlin

volumes:
  data:
  media:
  pgdata:
networks:
  internal:
    external: true
    name: proxy_default

Sobald man auf Deploy gedrückt hat, startet die Installation. Es wird eine Datenbank (Postgres) aufgesetzt, ein Redis und ein kleiner Webserver, der sich um die Weboberfläche kümmert. Dies dauert ein paar Minuten, bis man auf die Weboberfläche mit http://localhost:8000 kommt.

Sobald man Zugriff auf die Weboberfläche hat, kommt man zum Anmeldefenster, indem man seine Anmeldedaten eingeben kann. Jetzt hat man kompletten Zugriff auf Paperless und kann beginnen, seine Dolumente dort hochzuladen und zu sortieren. Viel Spaß!

Zum GitHub Repository:

https://github.com/paperless-ngx/paperless-ngx