Scanservjs
Scanservjs is a web user interface for SANE (Scanner Access Now Easy) scanners, letting you run scans from USB or network devices through a browser.
Platform availability
Available on 2 of 9 platforms
Health score?A 0-100 score computed nightly from four factors: maintained (40%: recent commits and steady activity), popular (25%: GitHub stars, log scale), easy to install (20%: platforms, install notes, setup guides, Docker image) and light to run (15%: minimum RAM, ARM support). When the source code has been checked, a fifth factor, security check (20%: automated scan for committed secrets, unsafe desktop-app settings, known-vulnerable dependencies and project hygiene; any serious finding caps it at 20), is added. Factors without data are left out and the rest are rescaled.
67/100 Good
- Maintained
- 82last commit 45 days ago
- Popular
- 611,167 GitHub stars
- Easy to install
- 452 install platforms, install notes, Docker image
- Light to run
- No data
Based on 3 of 4 factors.
Availability: platform listings confirmed today, links checked 11 days ago
- GitHub stars
- 1,167
- Open issues
- 65
- Last commit
- 2026-08-29
- Latest release
- v3.3.0
- License
- GPL-2.0
- Activity
- stale
Checked 5 days ago - source: GitHub (sbs20/scanservjs)
Resources & Compatibility
ARM (e.g. Raspberry Pi) is supported.
Checked 14 days ago - source: Docker Hub image tags and published docs
First-install notes
- Install the app on Debian On Debian, run the one-line bootstrap command to install the latest scanservjs. This sets up the application and service so you can use the web UI instead of manually installing packages. source
- Allow the scanner service to see your network Add your local network range, such as 192.168.0.0/24, to /etc/sane.d/saned.conf, then start saned.socket. This lets the computer talk to your scanner; without it, scanservjs may not find the scanner and scans can fail. source
- Run Docker with scanner access Start the container with -p 8080:8080 and --privileged. Port 8080 opens the web app, and --privileged is a special permission the container needs to talk to scanner hardware; missing it can block the UI or scanning. source
- Discover scanner devices Open the Docker console and run scanimage -L to list discovered devices, then put the returned device ID into the devices variable. source
Fetched 4 days ago - each note links to its source
Variants
Alternatives (1)
- VueScan - Scans documents, photos, and film on Windows, macOS, and Linux, supports over 1200 scanners, creates PDF, JPEG, TIFF, TXT files, and includ…
Checked 11 days ago - source: AlternativeTo
Common questions
How do I install scanservjs on Debian?
Run the one-line bootstrap command provided for Debian. It installs the latest scanservjs and sets up the application and service so you can use the web UI.
What Docker flags are needed for scanservjs to access scanner hardware?
Start the container with port 8080 mapped and the --privileged flag. The privileged permission is required for the container to talk to scanner hardware, and missing it can block the UI or scanning.
How do I make scanservjs find a network scanner that uses saned?
Add your local network range, such as 192.168.0.0/24, to /etc/sane.d/saned.conf and start saned.socket. Without this, scanservjs may not find the scanner and scans can fail.
Why might scanservjs fail to scan even when the web UI is running?
scanservjs wraps scanimage and runs it as the scanservjs user in the scanner group. If scanimage cannot connect to the hardware or scanner service, scanservjs will not work either.
Answers sourced from github.com, github.com, github.com, sbs20.github.io
Community
- Print + scanner server service recommendation : r/selfhosted - Reddit (reddit)
- Web-based interface for a networked scanner? : r/selfhosted - Reddit (reddit)
- ScanServerJs setup guide : r/selfhosted - Reddit (reddit)
- Document management, OCR processes, and my love for ScanServer-js. - Reddit (reddit)
- Reddit (reddit)
- scanner server over Wi-Fi? : r/selfhosted - Reddit (reddit)
Collected 5 days ago - public community threads