.. /* * This file is part of the SavaPage project . * Copyright (c) 2026 Datraverse B.V. * Author: Rijk Ravestein. * * SPDX-FileCopyrightText: (c) 2020 Datraverse B.V. * SPDX-License-Identifier: CC-BY-SA-4.0 * * For more information, please contact Datraverse B.V. at this * address: info@datraverse.com */ .. _ch-intro-sys-req: System Requirements ------------------- .. contents:: |RST_TABLE_OF_CONTENTS| :depth: 1 :local: .. _ch-intro-sys-req-server: Server ~~~~~~ .. contents:: :depth: 1 :local: |PRODUCT_NAME| |PRODUCT_SLOGAN| can be installed on any modern GNU/Linux system that supports **systemd** service manager like distributions based on Debian and Red Hat Enterprise Linux (RHEL), and openSUSE. Debian based distributions that use **SysV** init scripts are also supported. .. note:: Throughout this manual GNU/Linux command and file examples are given for Debian based systems. Commands and files might differ for other distributions, but not in function. For example, the Debian ``apt`` command has a RHEL ``yum`` and openSUSE ``yast`` equivalent. It is trusted that system administrators can translate the examples to their own environment. If applicable, functional differences between distributions will be explained. Installed host package versions are shown in the :ref:`Admin Web App `. Java ^^^^ |PRODUCT_NAME| is a Java program and must have JDK 11 or higher installed. Check the installation by executing both the ``java`` and ``javac`` commands: they should echo usage information. On Debian based systems you can install the JDK package with this command: .. code-block:: bash sudo apt install default-jdk-headless .. _ch-intro-sys-req-server-cups: CUPS ^^^^ SavaPage uses local CUPS printer queues for :ref:`Proxy Printing `. CUPS 1.4 or higher must be installed [3]_. On Debian based systems you can install CUPS with these commands: sudo apt install cups sudo apt install cups-bsd This package provides the parts of CUPS which are needed for using printer drivers. This package provides the BSD commands for interacting with CUPS, like ``lpr``. .. important:: SavaPage will automatically add any local CUPS printer as proxy printer. So, for proxy printing to work, first add each proxy printer as CUPS printer. .. tip:: Modern GNU/Linux distributions have everything prepared for using most printers. For USB printers it is often enough to simply plug them in. For network printers you simply start the distribution's printer setup tool out of the system administration menu or out of a system administration application, click on a button for adding a new printer and then follow the screen instructions. If this does not work, usually there is no suitable driver installed on your system. Verify in the `OpenPrinting database `__ whether your printer is supposed to work and whether there is a driver or PPD file available. See the `OpenPrinting CUPS Quick Start `__ for more details. .. _ch-intro-sys-req-server-smtp: .. [3] CUPS 1.4 or higher provides the Job Template attribute “fit-to-page” that is used by SavaPage proxy printing to scale documents to fit the size of selected media. See https://www.cups.org/doc/options.html. Also see :ref:`print-scaling `. SMTP ^^^^ An SMTP host must be available for sending email messages. See :ref:`Mail `. .. _ch-intro-sys-req-server-database: Database ^^^^^^^^ SavaPage is packaged with an internal database that offers you the opportunity to evaluate the product on a small scale right away. However, when promoting SavaPage to a production environment with multiple users, we strongly advise you to use `PostgreSQL `__ as external database server. See :ref:`Using an External Database `. .. warning:: Using the internal database in situations with concurrent use will inevitably lead to locking, deadlock and out-of-memory errors, which can make the system totally unresponsive. See the notes on :ref:`Database Locking `. .. _ch-intro-sys-req-server-poppler: Poppler ^^^^^^^ SavaPage needs the PDF utilities based on Poppler to function properly. `Poppler `__ is a PDF rendering library based on Xpdf PDF viewer. The command line utilities are used to get information of PDF documents, convert them to other formats, or manipulate them. SavaPage uses ``pdftocairo`` to convert PDF pages to images and to :ref:`Repair PDF ` documents. Check if the package is installed by entering the following command: .. code-block:: bash pdftocairo -v On Debian based systems you can install the package with this command: .. code-block:: bash sudo apt install poppler-utils .. note:: See :ref:`pdf2cairo Image Strategy ` if errors are encountered when creating SafePage images. .. _ch-intro-sys-req-server-qpdf: QPDF ^^^^ `QPDF `__ is a command-line program that does structural, content-preserving transformations on PDF files. The package is used to decrypt PDF from |RST_LINK_WEBPRINT| and |RST_LINK_MAILPRINT| if Encrypted PDF for Proxy Printing is allowed. See :ref:`SafePages `. Check if the package is installed by entering the following command: .. code-block:: bash qpdf --version On Debian based systems you can install the package with this command: .. code-block:: bash sudo apt install qpdf .. _ch-intro-sys-req-server-rsvg-convert: rsvg-convert ^^^^^^^^^^^^ `rsvg-convert `__ is a command-line program that converts SVG images into PNG raster images, PDF, PS, or SVG vector images, or dumps of Cairo XML or recording surfaces. The program is used by |PRODUCT_NAME| :ref:`Draw ` and needed to handle :ref:`Standard File Type SVG `. Check if the package is installed by entering the following command: .. code-block:: bash rsvg-convert --version On Debian based systems you can install the package with this command: .. code-block:: bash sudo apt install librsvg2-bin .. _ch-intro-sys-req-server-heif-convert: heif-convert ^^^^^^^^^^^^ ``heif-convert`` is a command-line program that converts HEIF images to JPEG. Installation is *optional*. Check if the package is installed by entering the following command: .. code-block:: bash heif-convert --help On Debian based systems you can install the package with this command: .. code-block:: bash sudo apt install libheif-examples .. _ch-intro-sys-req-server-imagemagick: ImageMagick ^^^^^^^^^^^ SavaPage needs the ``convert`` command of the ImageMagick software suite to manipulate images. ImageMagick is a software suite to create, edit, compose and convert bitmap images in a variety of formats (over 100) . Check by entering the following command: .. code-block:: bash convert --version On Debian based systems you can install the package with this command: .. code-block:: bash sudo apt install imagemagick .. _ch-intro-sys-req-server-avahi: Avahi ^^^^^ Avahi is needed if you want to use :ref:`IPP Everywhere and AirPrint ` to print to |PRODUCT_NAME|. It is also needed to retrieve the hostname of CUPS printers whose URI refers to a :ref:`DNS-SD instance ` (``dnssd://`` scheme) in order to establish an SNMP connection. See :ref:`Printer SNMP `. `Avahi `__ is a system which facilitates service discovery on a local network via the mDNS/DNS-SD [4]_ protocol suite. Any modern GNU/Linux system has Avahi installed, but to be sure you can check by entering the following command: .. code-block:: bash avahi-browse --version On Debian based systems you can install the package with this command: .. code-block:: bash sudo apt install avahi-utils avahi-discover libnss-mdns .. [4] mDNS/DNS-SD enables you to plug your laptop or computer into a network and instantly be able to view other people who you can chat with, find printers to print to or find files being shared. Compatible technology is found in Apple macOS (branded `Bonjour `__ and sometimes Zeroconf). .. _ch-intro-sys-req-server-hardware: Hardware ^^^^^^^^ The SavaPage server process requires a minimum of 2 CPU cores, 2GB of RAM and 1 GB of free disk space. .. note:: Depending on the expected print quota you should reserve extra disk-space for each SavaPage user. See |RST_LINK_CAPACITY_PLANNING|. .. _ch-intro-sys-req-clients: Clients ~~~~~~~ On *desktop and mobile* clients you need an HTML5 compatible browser and support for Internet Printing Protocol (IPP), IP Printing (JetDirect) or AirPrint® .