Sign inSign up

yajo/cupsd

By yajo

•Updated almost 11 years ago

A CUPS server in CentOS, ready to install printers and run in production

Image
3

3.6K

yajo/cupsd repository overview

⁠Dockerized CUPS server

A CUPS⁠ server installed in CentOS⁠ 7.

⁠Production

Examples use docker-compose⁠ >= 1.2. If you do not have it, install it in a virtualenv with:

./setup.sh

You can use this image with 2 methods:

  1. Secured⁠. Default behavior.

     ./docker-compose -f production.yml up
    
  2. Permissive⁠. All users can do everything without authentication, except adding, modifying and deleting printers and classes, and setting the default options.

     ./docker-compose -f production.permissive.yml up
    

⁠Setting up users

The server comes with two users preconfigured:

  • admin, with password ad1234. Belongs to group sys.

  • user, with password us1234. Belongs to group lp.

If you want to change those, use lppasswd⁠ and add your custom /etc/cups/passwd.md5 file:

FROM yajo/cupsd
ADD passwd.md5 /etc/cups/

⁠Installing printers

Use lpadmin⁠ in /opt/install-printers.sh:

Your Dockerfile for installing an HP printer could be:

FROM yajo/cupsd
RUN yum -y install hplip && yum clean all
ADD install-printers.sh /opt/

And your /opt/cups/install-printers.sh could contain:

#!/usr/bin/bash
set -x
lpadmin -U admin -p color-printer -v ipp://192.168.0.100 -E \
    -P /usr/share/ppd/HP/hp-officejet_pro_451_series-ps.ppd.gz

It will be executed and then removed.

⁠Known issues

  • I have not figured out how to make it autodiscover printers. However, it does not matter very much, as the purpose of this image is to subclass it and install printers through the child Dockerfile. But if you know how to do it, any help is welcome.

Tag summary

Content type

Image

Digest

sha256:639f70309…

Size

101.8 MB

Last updated

almost 11 years ago

docker pull yajo/cupsd