❌

Reading view

Guide - Use docker to operate legacy scanner hardware on Windows 11

Guide - Use docker to operate legacy scanner hardware on Windows 11

So I have my fairly old Canon LiDE 60 flatbed scanner, which I need occasionally to scan documents.
This scanner is somewhat like 20 years old!
Despite its age, it's doing its job, and it's doing it quite well.

The biggest issue?
Getting it to work on Windows 11, without setting up a dedicated virtual machine with Windows XP just for this scanner.
I hesitate to get a replacement, because I hate throwing away perfectly working hardware and creating unnecessary e-waste, just because driver support dropped.

What I tried:
- VueScan: The trial version works like a charm. VueScan recognizes the LiDE 60 and the scan results are beautiful, the post-processing is good.
Unfortunately, the trial of VueScan prints a huge watermark overlay, making the scans unusable. I'm absolutely not willing to pay ~ 85 € for this

(heck, even the one-year license for about ~ 25 € is not barely worth it.
For 85 € I can get a new scanner, which is compatible with Windows 11, and for 25 € a used model).
The VueScan pricing is absolutely ridiculous, at least for a bog-standard flatbed scanner (I know they also support film scanners, which is a different story and probably worth the license fee, but absolutely not in my case).

And attempting to find a crack / patcher for VueScan is the best way to get some nice Malware on the machine. The search results are flooded with fakes and I'm not willing to spend my time and taking the risk to find a legit crack.

- Reusing the Windows 7 driver: Well. It used to work until some Windows 10 update. And I haven't managed to get it back it work since then, also not on Windows 11. According to a comment, it's supposed to work, but whatever 💁

- Virtual Machines with VirtualBox: Works with Windows XP as well as Ubuntu. But this solution is fairly slow and inconvenient. Also, wasting at least 20 GB of space for a VM, just as a scanner driver replacement, is crazy. I don't need the VM all the time on my machine, but every new VM setup takes up some time and is annoying.
So, the VM solution is somewhat ok. It does its job. But it feels clumsy and I don't like this approach.

VueScan is out of the game, as is the legacy Windows 7 driver. What is left? Virtualization!
But a VM is somewhat clumsy and heavyweight. I seek a more lightweight and elegant solution.
Like Docker containers.

Can we containerise Linux scanner drivers and expose scanning software through a web interface out of the container? Yes, we can!
And luckily, someone already wrote that software. And also provides a Docker container.
May I introduce scanservjs?

So we have a Docker container with all the required software stack. We just need to connect it wit our scanner and let's go.

Prerequisites / Installations:
- Docker is installed and the WSL 2 backend enabled (this is currently the default engine). Docker must also be running.
- usbpid-win must be installed.

One-time setup:
- Download the Docker container: docker pull sbs20/scanservjs
- Open a terminal with administrator privileges for usbipd.
- List the USB devices and find the busid of the scanner with usbipd list
(the busid is 6-3 of the CanoScan LiDE 60 in this example.
It will be different on your machine! Use the busid of your scanner)

Connected:
BUSID VID:PID DEVICE STATE

1-4 04f2:b71c Integrated Camera, Integrated IR Camera Not shared
3-1 0bda:9210 USB Mass Storage Device Not shared
3-3 27c6:6594 Goodix MOC Fingerprint Not shared
3-4 8087:0029 Intel(R) Wireless Bluetooth(R) Not shared
4-1 17ef:3062 Lenovo USB Ethernet Not shared
6-2 17ef:3060 Billboard Device, USB Input Device Not shared
6-3 04a9:221c CanoScan LiDE 60 Not shared
8-2 2c7c:0600 Quectel EM120R-GL, Quectel QMUX Interconnect Not shared

Persisted:
GUID DEVICE
5e1e689d-7ca1-49ff-926d-eebd377bd1a7 USB Serial Device (COM11)
cb0cb49e-40d6-4d3b-9483-0c1f3c175fbf USB Serial Device (COM12), USB Mass Storage Device

- Bind and attach the busid of the scanner to the WSL engine.
usbipd bind --busid 6-3
usbipd attach --wsl --busid 6-3

The output should be somewhat like that:
usbipd: info: Using WSL distribution 'Ubuntu-26.04' to attach; the device will be available in all WSL 2 distributions.
usbipd: info: Detected networking mode 'nat'.
usbipd: info: Using IP address 172.23.64.1 to reach the host.

- Check the binding with usbipd list. The scanner should be in the state Attached now.

Connected:
BUSID VID:PID DEVICE STATE

1-4 04f2:b71c Integrated Camera, Integrated IR Camera Not shared
3-1 0bda:9210 USB Mass Storage Device Not shared
3-3 27c6:6594 Goodix MOC Fingerprint Not shared
3-4 8087:0029 Intel(R) Wireless Bluetooth(R) Not shared
4-1 17ef:3062 Lenovo USB Ethernet Not shared
6-2 17ef:3060 Billboard Device, USB Input Device Not shared
6-3 04a9:221c CanoScan LiDE 60 Attached
8-2 2c7c:0600 Quectel EM120R-GL, Quectel QMUX Interconnect Not shared

Persisted:
GUID DEVICE
5e1e689d-7ca1-49ff-926d-eebd377bd1a7 USB Serial Device (COM11)
cb0cb49e-40d6-4d3b-9483-0c1f3c175fbf USB Serial Device (COM12), USB Mass Storage Device

Scanning:
- Run the Docker container: docker run -d -p 8080:8080 --privileged sbs20/scanservjs
- Open http://localhost:8080/ in your browser and enjoy using your old scanner. No need to throw away fully working hardware.

Scanned handwriting: Scanned on a Canon Lide 60 on Windows 11 with scanservjs and Docker

How does this work?
The foundation is the SANE driver for Linux. Your scanner must be supported by SANE, otherwise this whole setup won't work.
usbipd is used to redirect your USB device through USB/IP to the WSL 2 engine. The USB redirect is not just for your default WSL distribution, it's also available to all Docker containers. You can verify this by executing e.g. lsusb from within a Docker container.

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 005: ID 04a9:221c Canon, Inc. CanoScan LiDE 60
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Related Resources:
- https://www.geckoandfly.com/7569/canon-lide-scanner-and-printer-driver-for-microsoft-windows-7-64-bit/
- https://www.schraegstrichpunkt.de/canon-canoscan-lide-50-unter-windows-7-64-bit
- https://www.bachmann-lan.de/canon-lide-60-unter-windows-10/
- https://www.bentasker.co.uk/posts/blog/opinion/scanners-old-hardware-and-the-environment.html

submitted by /u/redderredred to r/selfhosted
[link] [comments]
  •  

Best self-hosted Spotify replacement with music discovery

I'm looking to replace Spotify with a self-hosted setup, especially its personalized recommendations, Daylist, Discover Weekly and Daily Mixes

I'd love to discover and listen to new music without permanently downloading everything, while keeping my favorites and automatically collecting releases from selected artists.

I already have Soulseek, Usenet and torrents available, as well as my exported Spotify listening history and playlists

I'm completely open to any software or combination of tools.

Has anyone built something that comes close to Spotify's discovery experience? What would you recommend?

submitted by /u/bka-informant to r/selfhosted
[link] [comments]
  •  

My journey after six months... and my thoughts..

My journey after six months... and my thoughts..

This has been quite the learning experience for me. I knew absolutely nothing at the start of this, although I had a pretty good background understanding of computers in general, but only with Windows machines. I just knew I wanted to take back control of my data.

I installed TrueNAS on an old i7 3770k system with 32GB of DDR3 RAM.

At first, I (heavily) used AI to help me with installing community apps, navigating the file system and permissions because I just didn't understand it. As I went, I learned more and more and went well beyond where I expected to stop.

Fast forward to now, I have a pretty good understanding of Linux and Docker in general. I ditched Windows on two other machines in favor of CachyOS and Ubuntu, and I am using those other two machines to run services complementing my server stack.

My thoughts:

  • Docker is amazing. I am in constant awe of the capabilities that Docker has and really how easy it is to use once you understand how it works.
  • Don't expose your services to the internet if you can help it. I have Ubiquiti hardware so everything is utilized via VPN when I am away from home.
  • Physical disks will fail. I lost two drives during this time. One showed bad sectors after maybe 3 months, and its replacement was DoA. Luckily, I did not lose any data, but I do offsite backups to Backblaze weekly, my app pool is mirrored to another disk inside the server as well as pushed via rsync weekly to my CachyOS and Ubuntu systems.
  • Learn how to use the shell and shell commands.
  • Problems with things are permissions related 99% of the time.
  • The "arr" stack is amazing. It's like magic.

Thanks for reading.

submitted by /u/rickymilby to r/selfhosted
[link] [comments]
  •  

Oh... I'm having a lot of fun lately

Oh... I'm having a lot of fun lately

My current setup... and I'm getting so much satisfaction out of it!

Everything is running smoothly, 3-2-1 backups are in place and working, remote monitoring is set up, and even my wife is happy with KitchenOwl for recipes and Watcharr! :)

It's honestly amazing how much fun self-hosting can be.

submitted by /u/metalogico to r/selfhosted
[link] [comments]
  •  

Sablier, 4 years later: start your apps on demand, now with Podman, Proxmox LXC, Nomad, ECS and more

Hey r/selfhosted,

About four years ago I posted Sablier v1.1.0 on r/Traefik. If you've never heard of it: Sablier starts your apps when someone actually visits them, and stops them after a while without traffic. While an app boots, your reverse proxy shows a waiting page or just holds the request until it's ready. It's made for the services you open twice a month but keep running 24/7.

I've just released v1.19.0, and a lot has changed since that post, so here's a catch-up.

It's not just Docker anymore

  • Providers: Docker, Docker Swarm, Kubernetes, Podman, Proxmox LXC, systemd, Nomad and AWS ECS
  • Reverse proxies: plugins for Traefik and Caddy, plus Nginx, Envoy, Istio and Apache APISIX through a proxy-wasm plugin

Scale instead of stop
Cold starts are the main complaint about this kind of tool. With scale mode, Sablier doesn't have to stop an idle app. It can keep it running with throttled CPU, memory or disk I/O, and give it its full resources back when someone shows up.

Webhooks and observability

  • Webhooks when an instance starts or stops, so you can plug Sablier into your notifications or monitoring
  • A Prometheus /metrics endpoint
  • OpenTelemetry tracing

A few smaller ones I like

  • Running hours: keep something up during set hours, whatever the traffic
  • Anti-affinity: make an app back off while another group is in use, e.g. free the GPU from Nextcloud while your streaming stack is running
  • Groups, optional instances, and themes for the waiting page

The maintainer side

This part is more personal. For most of its life, Sablier was mostly me, on evenings and weekends, because I enjoyed it. Outside contributions were rare. After a while that gets heavy: issues pile up, every feature takes weeks, and the project lives in the back of your head as a to-do list.

This year changed that, and AI is a big part of why. I know it's a touchy subject here, so I'd rather say it upfront. On my side, I can turn an idea into a working feature in days instead of months. It comes with tests and docs, and I still review every line. Contributions came back too: 13 people besides me have contributed so far this year, about twice as many as in any previous year. I was honestly expecting a wave of AI slop. I didn't get any, just really nice PRs.

The result is that I don't carry the project around in my head anymore, and maintaining it is fun again.

If you already use Sablier, I'd really like to hear from you

I know very little about who actually runs Sablier. I see the stars, the issues and the occasional PR, but most people who use it never say anything. That's fine, but it means I'm guessing a lot when I decide what to work on next.

So if you use it, I'd love a comment, even a short one:

  • Is it for your homelab, for work, or both?
  • What do you put behind it, and why? Saving RAM or power, a small VPS, GPU sharing, or something else?
  • Is it really useful to you day to day, or more of a nice-to-have?
  • What's annoying, missing, or confusing?

Negative feedback is just as welcome. If you tried it and dropped it, I want to know why too.

submitted by /u/zittoone to r/selfhosted
[link] [comments]
  •  
❌