Homebrew prerequisite
Homebrew uses the supported standard prefix on Apple silicon and Intel and pulls in every required Scanworker dependency.
Debian 12 and Debian 13
The signed APT repository is the recommended installation route. It provides updates, matching GPL source code, and all required OCR dependencies.
curl -fsSL https://deb.ralfhartmann.dev/repo.gpg.key \
| sudo gpg --dearmor \
-o /usr/share/keyrings/rhpost-archive-keyring.gpg
. /etc/os-release
case "$VERSION_CODENAME" in
bookworm|trixie) ;;
*) echo "Debian 12 or 13 is required"; exit 1 ;;
esac
printf "deb [signed-by=/usr/share/keyrings/rhpost-archive-keyring.gpg] https://deb.ralfhartmann.dev %s main\ndeb-src [signed-by=/usr/share/keyrings/rhpost-archive-keyring.gpg] https://deb.ralfhartmann.dev %s main\n" \
"$VERSION_CODENAME" "$VERSION_CODENAME" \
| sudo tee /etc/apt/sources.list.d/scanworker.list
sudo apt-get update
sudo apt-get install scanworker
Debian 12 Bookworm and Debian 13 Trixie have separate signed package indexes. The architecture-independent binary package and its GPL source package are verified in both distributions.
The current stable Debian package can also be downloaded directly. APT setup is preferable for automatic updates.
After enabling deb-src, the same source is available with apt source scanworker. An additional ZIP is unnecessary: .dsc and .tar.xz are the standard Debian source-package formats.
The base workflow is complete with Tesseract alone. PaddleOCR-VL is a separate local service and can run on a CPU machine without a cloud API.
In /etc/scanworker/scanworker.conf, the duplex input accepts two simplex passes for pairing; the single input sends an already-complete PDF directly to OCR:
DUPLEX_INPUT_DIR=/srv/scan/duplex
SINGLE_INPUT_DIR=/srv/scan/single
If DUPLEX_INPUT_DIR is absent, an existing INPUT_DIR remains the duplex input. Restart the Scanworker services after changing these paths.
Homebrew is the recommended prerequisite for Scanworker on a Mac: it installs and updates every background service plus Python, OCRmyPDF, Tesseract language data, Ghostscript, and Poppler. The free GPL app is distributed outside the App Store and is only a local controller: it displays settings read-only and opens the dashboard. If Homebrew is absent, the app links to the official installation page; it can then install the Scanworker packages from the dedicated tap. See the licensing details.
Homebrew uses the supported standard prefix on Apple silicon and Intel and pulls in every required Scanworker dependency.
Homebrew supplies Python 3.13, OCRmyPDF, German and English Tesseract data, Ghostscript, and Poppler.
The service runs natively on Intel and Apple silicon and can serve Scanworker on this Mac or a Debian host. Initial trusted-LAN operation is unauthenticated; Bearer authentication can be enabled.
Opens the dashboard from menu and Settings, displays configuration read-only, and controls local Homebrew services. Encryption, user sign-in, parameter changes, and system notifications belong to the paid app.
A native Windows version of Scanworker is planned.
Coming soonWindows is not yet supported. The download link will appear here once an installable package is available.