# 🧾 Paperless-ngx installieren (Docker)

Diese Anleitung zeigt, wie du **Paperless-ngx**, das Open-Source-Dokumentenmanagementsystem, mit **Docker Compose** installierst.

---

## 🐳 1. Docker installieren

> 📦 Wenn Docker noch nicht installiert ist, folge dieser Anleitung:
> [!ref](docker-install.md)

---

## 📂 2. Verzeichnisstruktur erstellen

Wechsle in den `/opt`-Ordner und erstelle den Projektordner:

```bash
cd /opt
sudo mkdir paperless
cd paperless
```

---

## 🧱 3. Docker Compose Datei erstellen

Erstelle eine Datei namens `docker-compose.yml`:

```bash
sudo nano docker-compose.yml
```

Füge folgenden Inhalt ein:

```yaml
version: "3.4"
services:
  broker:
    image: docker.io/library/redis:7
    restart: unless-stopped
    volumes:
      - redisdata:/data

  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

  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    depends_on:
      - db
      - broker
    ports:
      - "8010:8000"
    healthcheck:
      test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
      interval: 30s
      timeout: 10s
      retries: 5
    volumes:
      - data:/usr/src/paperless/data
      - media:/usr/src/paperless/media
      - ./export:/usr/src/paperless/export
      - ./consume:/usr/src/paperless/consume
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db
      USERMAP_UID: 1000
      USERMAP_GID: 100
      PAPERLESS_TIME_ZONE: Europe/Berlin
      PAPERLESS_OCR_LANGUAGE: deu
      PAPERLESS_ADMIN_USER: admin
      PAPERLESS_ADMIN_PASSWORD: admin

volumes:
  data:
  media:
  pgdata:
  redisdata:
```

Speichern und schließen (`Ctrl + O`, `Ctrl + X`).

---

## ▶️ 4. Paperless-ngx starten

Starte den Stack im Hintergrund:

```bash
docker compose up -d
```

Docker lädt nun die Images herunter und startet alle Container (Datenbank, Redis, Webserver).

---

## 🌐 5. Zugriff auf das Webinterface

Nach einigen Minuten ist Paperless-ngx unter folgender Adresse erreichbar:

```
http://<deine-ip>:8010
```

Standard-Login:
```
Benutzername: admin
Passwort: admin
```

> ⚠️ **Tipp:** Ändere das Passwort direkt nach dem ersten Login über das Webinterface!

---

## 🧰 6. Nützliche Docker-Befehle

| Befehl | Beschreibung |
|--------|---------------|
| `docker compose ps` | Zeigt laufende Container an |
| `docker compose logs -f` | Zeigt Live-Logs |
| `docker compose restart` | Startet Paperless neu |
| `docker compose down` | Stoppt und entfernt den Stack |
| `docker compose pull && docker compose up -d` | Paperless-ngx aktualisieren |

---

## ✅ 7. Abschluss

Nach der Installation steht dir Paperless-ngx zur Verfügung – ein leistungsstarkes System, um deine Dokumente zentral zu verwalten, automatisch zu taggen und OCR-Erkennung durchzuführen.
