.. meta::
   :description: Overview of printer configuration in a ThinLinc
                 cluster, detailing the setup of CUPS on the master and
                 agent machines, including the importance of disabling
                 CUPS Browsing and configuring the nearest and thinlocal
                 printer queues.

.. _printing_config_overview:

Printer configuration overview
------------------------------

This section provides an overview of how printing is configured in a
ThinLinc cluster.

.. figure:: images/printer_config_overview.svg

   Printer configuration overview

CUPS browsing
~~~~~~~~~~~~~

It is important that the CUPS Browsing feature is **turned off** on all
machines in the cluster, or problems with duplicate **thinlocal**
printers will occur.

CUPS configuration on the master server
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In the CUPS configuration on the master server, configure all printers
that need to be available. Either use distribution-specific tools, or
the built-in administration interface in CUPS which can usually be
reached by using a web browser, connecting to port 631 on the machine,
i.e. http://tl.example.com:631/.

The **nearest** and **thinlocal** queues, used by the nearest printer
and the local printer features respectively, are added by ThinLinc
setup.

Printers, with one exception (see below) only need to be configured on
the master server. Agent servers will use the CUPS daemon (cupsd) on the
master server for printing.

CUPS configuration on the agent server(s)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The agent servers in the cluster (the machines hosting user sessions)
need a running CUPS daemon (:command:`cupsd`), but this only needs one
printer defined — the **thinlocal** queue. The **thinlocal** queue is
added by ThinLinc setup when installing the ThinLinc on the agent
server.

When using the **nearest** queue, the CUPS daemon on the agent servers
must also have the hostname or IP address of the master server
specified. This is done using the "ServerName" parameter in the CUPS
configuration file :file:`/etc/cups/client.conf`.

.. note::

   The CUPS daemon on each agent must listen to requests on the network
   interface, and allow printer jobs from the master to be submitted to
   the **thinlocal** queue.

When a user submits a job to the local printer, i.e. to the
**thinlocal** queue, the printer job will be submitted to the CUPS
daemon running on the master server. It will then be respooled to the
cupsd on the agent server hosting the session. This is to make central
configuration of all other printers possible.
