Ü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.

Startseite von ScanSync

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 up und 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:

ScanSync Sync-Seite mit OneDrive-Verbindungen

Neue Verbindungen lassen sich per Dialog anlegen – SMB-Share-Name und OneDrive-Zielordner auswählen, fertig:

ScanSync Dialog zum Hinzufügen einer neuen Ordner-Zuordnung

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.