Dieses System dient als lokaler Scan- und Upload-Server für Paperless-ngx.
| Komponente | Beschreibung |
|---|---|
| Raspberry Pi 5 | zentraler Scan-Server |
| microSD-Karte | Betriebssystem & Docker |
| Epson WorkForce Pro WF-4830DTWF | Netzwerkscanner |
| Einstellung | Wert |
|---|---|
| Hostname | mam-raspberry |
| Feste IP | 192.168.2.200 |
| SMB-Freigabe | Scans |
Raspberry Pi OS Lite (64-bit)
ssh mam@192.168.2.200
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker mam
Datei:
/etc/docker/daemon.json
Inhalt:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
Docker neu starten:
sudo systemctl restart docker
sudo apt install samba -y
/srv/scans/
├── inbox/
├── processing/
├── uploaded/
└── failed/
sudo chown -R mam:mam /srv/scans
sudo chmod -R 775 /srv/scans
sudo smbpasswd -a mam
Datei:
/etc/samba/smb.conf
Freigabe:
[Scans]
path = /srv/scans/inbox
browseable = yes
read only = no
guest ok = no
valid users = mam
create mask = 0664
directory mask = 0775
force user = mam
force group = mam
sudo systemctl restart smbd
Im Finder:
Gehe zu → Mit Server verbinden
Adresse:
smb://192.168.2.200/Scans
https://mam-paperless.ddns.net
Der Upload erfolgt über die Paperless API.
API-Endpunkt:
/api/documents/post_document/
/home/mam/scan-uploader
scan-uploader/
├── .env
├── docker-compose.yml
├── Dockerfile
└── uploader.py
PAPERLESS_URL=https://mam-paperless.ddns.net
PAPERLESS_TOKEN=DEIN_TOKEN
SCAN_INBOX=/srv/scans/inbox
SCAN_PROCESSING=/srv/scans/processing
SCAN_UPLOADED=/srv/scans/uploaded
SCAN_FAILED=/srv/scans/failed
Der Upload-Service:
überwacht /srv/scans/inbox
wartet bis Dateien vollständig geschrieben sind
lädt Dateien per API hoch
verschiebt Dateien nach:
uploadedfailed.pdf
.png
.jpg
.jpeg
.tif
.tiff
macOS-Metadateien werden ignoriert:
.DS_Store
._*
FROM python:3.12-slim
WORKDIR /app
RUN pip install --no-cache-dir requests
COPY uploader.py /app/uploader.py
CMD ["python", "-u", "/app/uploader.py"]
services:
scan-uploader:
build: .
container_name: scan-uploader
restart: unless-stopped
env_file:
- .env
volumes:
- /srv/scans/inbox:/srv/scans/inbox
- /srv/scans/processing:/srv/scans/processing
- /srv/scans/uploaded:/srv/scans/uploaded
- /srv/scans/failed:/srv/scans/failed
docker compose up -d --build
docker logs -f scan-uploader
docker ps
| Feld | Wert |
|---|---|
| Host | 192.168.2.200 |
| Freigabe | Scans |
| Benutzer | mam |
| Passwort | Samba-Passwort |
Scanner
↓
SMB-Freigabe
↓
/srv/scans/inbox
↓
Uploader erkennt Datei
↓
Upload zu Paperless
↓
uploaded/ oder failed/
Werden verschoben nach:
/srv/scans/failed
Werden archiviert nach:
/srv/scans/uploaded
Der Upload-Service startet automatisch nach Reboots:
restart: unless-stopped
sudo reboot
sudo systemctl restart docker
sudo systemctl restart smbd
hostname -I
Wichtige Verzeichnisse sichern:
/srv/scans
/home/mam/scan-uploader
Docker-Webverwaltung:
http://192.168.2.200:9000
Mögliche Integration:
Mögliche spätere Features:
Beispiel:
QR_RECHNUNG
Automatisch:
Der Raspberry Pi fungiert als:
Das System ist: