Table of Contents

Printserver

If you are in a household with several client computers that want to share a printer, you could use a Raspberry Pi or NUC to do so. However, some printjobs can be extremely slow on a Raspberry Pi due to the limited computing power for spooling large pages.

Server installation and configuration

  1. Install CUPS:
    sudo apt install cups
  2. After the installation go to the dicectory /etc/cups and edit the cupsd.conf. Edit the following lines:
    Listen localhost:631

    must be

    Listen *:631
  3. Look for all sections beginning with <Location> and add the following line as a last line in that section to allow printing and administration from the local network:
    Allow @LOCAL
  4. On a Raspberry Pi, add the user pi to the group lpadmin so you can use this username for the web interface:
    sudo adduser pi lpadmin
  5. Afterwards, restart the CUPS daemon:
    systemctl restart cups
  6. Finally, go to the CUPS webinterface “Administration” tab on your server through https://Server-IP-or-Name:631/admin and check the following:
    • Share printers connected to this system
    • Allow remote administration
    • Allow users to cancel any job (not just their own)
      This shouldn't matter much in your home network, if you are concerned you can of course leave this off.
  7. Click “Change Settings” and the server is ready to go. Just add your printer(s) as needed.

Client configuration

On the client side installation and configuration is a lot easier.

  1. Install the CUPS Client:
    apt install cups-client
  2. Create the file ~/.cups/client.conf with the following content:
    ServerName RaspberryPi-IP-or-Name

    It is possible that the directory ~/.cups doesn't exist, just create it. If you prefer that to be a global setting, create that same file in /etc/cups.

  3. That's it, now you're good to go!