Scan Webinterface Linux


scanservjs is a web UI frontend for your scanner. It allows you to share one or more scanners (using SANE) on a network without the need for drivers or complicated installation.


  • Cropping
  • Source selection (Flatbed / ADF)
  • Resolution
  • Output formats (TIF, JPG, PNG, PDF and TXT with Tesseract OCR) with varying compression settings
  • Filters: Autolevels, Threshold, Blur
  • Configurable overrides for all defaults as well as filters and formats
  • Multipage scanning (with collation for double sided scans)
  • International translations: Arabic, Czech, Dutch, French, German, Italian, Mandarin, Polish, Portuguese (PT & BR), Russian, Slovak, Spanish, Turkish; Help requested
  • Light and dark mode
  • Responsive design
  • Docker images for amd64, arm64 and armv7
  • Swagger API documentation

It supports any SANE compatible devices.


  • SANE Scanner
  • Linux host (or VM with necessary pass-through e.g. USB)
  • Software sane-utils, ImageMagick, Tesseract (optional) and nodejs


Running scanservjs

In most cases the use of the app should be fairly self-explanatory. When the app first loads, it attempts to detect your scanner – this step is the most precarious and may either require custom drivers or some additional steps if you’re running a network scanner or docker. See the documentation above for more.

Once the scanner is detected then you have a number of pages.


This page gives access to the controls for your scanner. The app will generally find the settings available automatically, although some scanners mis-report their abilities. (If this is the case, then you can override what’s detected, see Configuration and device override for more). If geometry is available (selecting scan size and position) then you will have cropping available to you.

There is also the ability to perform batch scanning. If you have a document feeder, then just use the Auto option. If not then use Manual and the app will prompt you to change pages between scans.

Any scan operation will always result in a single file. Some image formats, such as PDF and TIF support multiple pages, while others, such as PNG and JPG do not. If the scan pipeline results in more than one file, then the app will zip the files into a single output. You can choose the image format under Format.

You can create and customise your own pipelines.


Any scanned files will be saved in a flat directory which has a simple web view available on this page. The intended usage of the app is to allow the user to save their scans locally – i.e. to download the files. The app will never delete these files, but if you run under docker then unless volume mapping is specified then the files may be lost when you run a new version.

Furthermore, users in real life will want to store their scans with their own names, directory structures and cloud services or NAS devices. The permutations and possibilities are endless and are beyond the scope of the app.


The settings page allows you to change the appearance and locale / language.