cupsd in a docker container.
Based on debian:bullseye-slim. Includes cupsd along with every printer driver I could think of.
Admin user & passwords default to print / print
Start cupsd with:
sudo docker run -d --restart unless-stopped \
-p 631:631 \
--privileged \
-v /var/run/dbus:/var/run/dbus \
-v /dev/bus/usb:/dev/bus/usb \
-v $(pwd)/printers.conf:/etc/cups/printers.conf \
unixorn/cupsdor use docker-compose up with the following docker-compose.yaml:
version: '3.9'
services:
cupsd:
image: unixorn/cupsd
volumes:
- './printers.conf:/etc/cups/printers.conf'
- '/dev/bus/usb:/dev/bus/usb'
- '/var/run/dbus:/var/run/dbus'
- /etc/hostname:/etc/hostname:ro
- /etc/localtime:/etc/localtime:ro
- /etc/machine-id:/etc/machine-id:ro
- /etc/timezone:/etc/timezone:ro
privileged: true
ports:
- '631:631'
restart: unless-stoppedMounting printers.conf into the container keeps you from losing your printer configuration when you upgrade the container later.
- Connect to
http://cupsd-hostname:631 - Adminstration -> Printers -> Add Printer
- System Preferences -> Printers
- Click on the +
- Click the center sphere icon
- Put the IP (or better, DNS name) of your server in the Address field
- Select
Internet Printing Protocolin the Protocol dropdown - Put
printers/YOURPRINTERNAMEin the queue field.
Use with Home Assistant
I blogged how I use this with Home Assistant to automagically turn on my HP 4050N printer when there are print jobs and turn it back off when the jobs are complete here, but it'll work with any printer.