Überblick¶
ScanSync verwandelt jeden Netzwerk-Scanner in ein smartes Dokumentenmanagementsystem. Dokument scannen, auf den SMB-Share legen – den Rest erledigt ScanSync: OCR, intelligente Umbenennung per AI und automatischer Upload nach OneDrive.
Motivation¶
Netzwerk-Scanner können scannen. Für OCR, automatische Ablage und Cloud-Sync braucht man teure Hardware oder Abo-Software. ScanSync löst das Problem komplett lokal: Ein Raspberry Pi oder beliebiger Server reicht, keine Cloud-Abhängigkeit, keine monatlichen Kosten. Somit kann jeder alter Scanner automatisch OCR und Upload zu OneDrive.
Architektur¶
ScanSync ist als Microservice-Architektur mit Docker Compose aufgebaut. Jeder Schritt der Pipeline ist ein eigener Service:
Scanner → SMB Server → Detection → OCR → Metadata → File Naming → Upload → OneDrive
↕
RabbitMQ
| Service | Aufgabe |
|---|---|
smb_service |
Samba-Server für eingehende Scans |
detection_service |
Erkennt neue Dateien auf dem Share |
ocr_service |
OCR mit OCRmyPDF (Deutsch + Englisch) |
metadata_service |
Extrahiert Dokumenten-Metadaten |
file_naming_service |
AI-basierte Umbenennung (OpenAI oder Ollama) |
upload_service |
Sync nach OneDrive |
web_service |
Dashboard und API (Flask) |
RabbitMQ sorgt dafür, dass kein Dokument verloren geht – auch wenn ein Service kurzzeitig ausfällt.
Features¶
- SMB Server — Scanner verbinden sich wie gewohnt per Netzwerk
- OCR — Automatische Texterkennung mit OCRmyPDF (DE + EN)
- Optional: AI File Naming — Intelligente Umbenennung per OpenAI oder lokalem Ollama Server
- OneDrive Sync — Automatischer Upload in konfigurierbare Zielordner
- Multiple Targets — Verschiedene Scanner können in verschiedene OneDrive-Ordner synchronisieren
- Web Dashboard — Übersicht über alle verarbeiteten Dokumente
- Status API — REST-API für Monitoring und Integration (z.B. mit dem E-Paper Status Display)
- Docker Compose — Ein
docker compose upund alles läuft
Quick Start¶
git clone https://github.com/maxi07/ScanSync.git
cd ScanSync
docker compose up --build -d
Danach:
- SMB-Share verbinden:
smb://<server>/Scans(User:ocr, Passwort:ocr) - Dashboard öffnen:
http://<server>:5001 - OneDrive-Verbindung einrichten, Scanner-Ziel konfigurieren, fertig
Im Dashboard sieht man alle verarbeiteten Dokumente auf einen Blick – inklusive Status, Dateiname und Verarbeitungsdauer.
Die Sync-Seite zeigt die konfigurierten Verbindungen zwischen Scanner-Ordnern und OneDrive-Zielen:
Neue Verbindungen lassen sich per Dialog anlegen – SMB-Share-Name und OneDrive-Zielordner auswählen, fertig:
Status API¶
Seit v0.4.1 liefert die /api/status-Endpoint detaillierte Verarbeitungsstatistiken:
curl http://localhost:5001/api/status
{
"processed_pdfs": 10,
"processing_pdfs": 3,
"total_pdfs": 15,
"failed_pdfs": 2,
"avg_processing_seconds": 45.68,
"processing_details": [
{"status": "OCR Processing", "count": 2},
{"status": "Reading Metadata", "count": 1}
]
}
Ergebnis¶
ScanSync läuft seit über einem Jahr produktiv und hat hunderte Dokumente verarbeitet. Das Projekt ist Open Source unter MIT-Lizenz und wird aktiv weiterentwickelt.