No description
- Python 96.8%
- Shell 3.2%
| .github | ||
| .env.example | ||
| .gitignore | ||
| 60-digiscan-scanner.rules | ||
| agent.py | ||
| CLA.md | ||
| digiscan-agent.conf.example | ||
| digiscan-agent.service | ||
| install.sh | ||
| license.md | ||
| README.md | ||
| requirements.txt | ||
| setup-usb.sh | ||
digiscan-ng Agent
Scanner-Agent für den Betrieb mit SANE-kompatiblen USB-Scannern (z.B. Panasonic KV-S5076H). Läuft als systemd-Service direkt auf dem Host — kein Docker, kein Container.
Warum kein Docker?
USB-Scanner mit proprietären SANE-Backends (z.B. kvs) funktionieren nicht
zuverlässig in Containern da die Host-Treiberbibliotheken nicht portierbar sind.
Direktinstallation auf dem Host ist die einzig zuverlässige Lösung.
Voraussetzungen
# SANE + Scanner-Treiber
sudo apt install sane sane-utils
# Testen ob Scanner erkannt wird:
scanimage -L
# Python + System-Abhängigkeiten
sudo apt install python3 python3-venv ocrmypdf
# pyzbar braucht libzbar
sudo apt install libzbar0
Installation
# 1. Repo klonen oder Dateien nach /opt/digiscan-ng-agent kopieren
sudo mkdir -p /opt/digiscan-ng-agent
sudo cp agent.py requirements.txt /opt/digiscan-ng-agent/
# 2. Installationsskript ausführen (legt venv an + systemd-Service)
sudo bash install.sh
# 3. Konfiguration ausfüllen
sudo cp digiscan-agent.conf.example /etc/digiscan-agent.conf
sudo nano /etc/digiscan-agent.conf
Konfiguration (/etc/digiscan-agent.conf)
# Server-URL: direkt zu SvelteKit, NICHT über Caddy/nginx
# (Agent läuft auf demselben Host wie Docker → localhost reicht)
DIGISCAN_SERVER=http://localhost:3000
# Secret muss mit AGENT_SECRET in digiscan-ng/.env übereinstimmen
DIGISCAN_SECRET=... # openssl rand -hex 32
AGENT_PORT=8089
Wichtig bei Reverse Proxy (Caddy/nginx mit HTTPS): Den Agent trotzdem auf
http://localhost:3000zeigen lassen. Caddy terminiert TLS nur für externe Browser — intern ist HTTP ausreichend und erspart SSL-Zertifikatsprobleme auf dem Host.
Betrieb
# Status
sudo systemctl status digiscan-agent
# Logs live
journalctl -u digiscan-agent -f
# Neustart
sudo systemctl restart digiscan-agent
USB-Berechtigungen
Falls Scanner nur als root erkannt wird:
sudo bash setup-usb.sh
# oder manuell:
sudo cp 60-digiscan-scanner.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger
Scanner-Profil
Der Agent nutzt das SANE-Profil panakvs (Panasonic KV-S5076H).
Bekannte Eigenheiten:
--duplex=yesfunktioniert--source=ADFist readonly — nie setzen- Hardware-Stop nach leerem Einzug → normales Verhalten, kein Fehler