ippserver(8)

a simple ipp server

ippserver(8)

Name

ippserver - a simple ipp server

Synopsis

ippserver [ -2 ] [ -C config-directory ] [ -K keypath ] [ -M manufacturer ] [ -P ] [ -a attributes-file ] [ -c command ] [ -d spool-directory ] [ -f type/subtype[,...] ] [ -h ] [ -i iconfile.png ] [ -k ] [ -l location ] [ -m model ] [ -n hostname ] [ -p port ] [ -r subtype ] [ -s speed[,color-speed] ] [ -v[vvv] ] [ -B --help ] [ -B --relaxed ] [ -B --version ] "service name"

Description

ippserver is a simple Internet Printing Protocol (IPP) server conforming to the IPP Everywhere and IPP Shared Infrastructure Extensions (INFRA) specifications. It can be used as a standalone print server and/or a very basic infrastructure server between standard IPP clients and IPP proxies conforming to the INFRA specification.

Options

The following options are recognized by ippserver:
-2
Specifies that the printer supports two-sided printing.
-C config-directory
Specifies the location of a directory containing files that define the configuration of the server and the service instances that are available. See the section titled "CONFIGURATION DIRECTORIES" below.
-K keypath
Specifies the location of TLS certificates and private keys.
-M manufacturer
Specifies the manufacturer for the printer.
-P
Specifies that the printer will require a PIN ("job-password") for submitted print jobs.
-a attributes-file
Specifies a file containing attribute definitions for the printer.
-c command
Specifies a command that is used to process job files.
-d spool-directory
Specifies the directory that will hold the print files. The default is a directory under the user's current temporary directory.
-f type/subtype,[...]
Specifies the list of supported MIME media types.
-h
--help
Shows program help.
-i iconfile.png
Specifies a PNG file for the printer icon.
-k
Keeps the print documents in the spool directory rather than deleting them.
-l location
Specifies the "printer-location" string for the printer.
-m model
Specifies the model name of the printer.
-n hostname
Specifies the hostname that is reported by the server. The default is the name returned by the hostname(1) command.
-p port
Specifies the port number to listen on. The default is a user-specific number from 8000 to 8999.
-r subtype
Specifies the Bonjour subtype to advertise for the printer. The default subtype is "_print".
--relaxed
Runs the server in relaxed conformance mode, which allows certain harmless IPP conformance issues to be ignored.
-s speed[,color-speed]
Specifies the printer speed in pages-per-minute.
-v[vvv]
Be (very) verbose when logging activity to the standard output.
--version
Show the software version number.

Exit Status

The ippserver program returns 1 if it is unable to process the command-line arguments. Otherwise ippserver will run continuously until terminated.

Examples

Run ippserver with a service name of My Cool Printer:

    ippserver "My Cool Printer"

Specify a proxy username of "foo" and password of "bar":


    ippserver -u foo:bar "My Cool Printer"

Configuration Directories

When the -C option is specified, ippserver reads a series of configuration files from the specified directory to configure the server and services supported by the server.

System.conf Configuration File

The system.conf configuration file specifies settings that apply to all services. Each line consists of a directive followed by its value(s). Comments start with the # character and continue to the end of the line. The following directives are supported:
Authentication {On|Off|Yes|No}
Specifies whether authentication is required for requests other than Get-Printer-Attributes. The default is "No".
AuthAdminGroup group
Specifies the group of print administrators. The default administrator group is "wheel".
AuthName realm
Specifies the authentication realm name. The default realm name is "Printing".
AuthOperatorGroup group
Specifies the group of print operators. The default operator group is the primary group for the user running the server.
AuthService name
Specifies the PAM service name. The default is either "cups" or "other", depending on the platform.
AuthTestPassword password
Specifies a single password that can be used to authenticate against any user account. Note: This directive is provided for testing only and does not actually provide access to the "authenticated" user account. The default is to not have a testing password enabled.
AuthType {None|Basic}
Specifies the type of authentication to require. "None" specifies that no authentication is required. "Basic" specifies that HTTP Basic authentication (username + password) is required. The default is "None" when authentication is turned off and "Basic" when authentication is turned on.
BinDir directory
Specifies the location of the ipptransform(1) and ipptransform3d(1) programs.
DataDir directory
Specifies the location of server data files.
DefaultPrinter name
Specifies the default print service name.
DocumentPrivacyAttributes {all|default|none|list of attributes and groups}
Specifies which document object attribute values are considered private. "All" will hide all attributes except "document-job-id", "document-number", "document-printer-uri", and "document-uuid". "Default" hides all description and template attributes but not status attributes. "None" does not hide any attributes. A list of (space-delimited) attributes and groups names specific attributes, all description ("document-description"), and/or all template ("document-template") attributes. The default value is "default".
DocumentPrivacyScope {all|default|owner|none}
Specifies which users can query private document attribute values. "All" means that all users can query private document attribute values. "Default" means that the document owner and any administrator or operator can query private document attribute values. "Owner" means that only the document owner can query private document attribute values. "None" means that no user can query private document attribute values. The default is "default".
Encryption {Always|IfRequested|Never|Required}
Specifies when to use TLS encryption for client connections. "Always" means that all connections are encrypted when established (HTTPS). "IfRequested" means that connections are encrypted when an upgrade is requested by the client. "Never" means that encryption is not allowed or supported. "Required" means that all connections are encrypted, either when established (HTTPS) or immediately thereafter using HTTP Upgrade.
FileDirectory directory [ ... directory ]
Specifies one or more directories that are allowed for local printing by reference. Directories with spaces must be put inside single ('some directory') or double ("some directory") quotes. The default is to not allow file: URIs for printing.
GeoLocation geo:latitude,longitude[,altitude]
Specifies the physical location of the server using a "geo" URI (RFC 5870).
Info description
Specifies a description of the server.
JobPrivacyAttributes {all|default|none|list of attributes and groups}
Specifies which job object attribute values are considered private. "All" will hide all attributes except "job-id", "job-printer-uri", and "job-uuid". "Default" hides all description and template attributes but not status attributes. "None" does not hide any attributes. A list of (space-delimited) attributes and groups names specific attributes, all description ("job-description"), and/or all template ("job-template") attributes. The default value is "default".
JobPrivacyScope {all|default|owner|none}
Specifies which users can query private job attribute values. "All" means that all users can query private job attribute values. "Default" means that the job owner and any administrator or operator can query private job attribute values. "Owner" means that only the job owner can query private job attribute values. "None" means that no user can query private job attribute values. The default is "default".
KeepFiles {No|Yes}
Specifies whether job data files are retained after processing.
Listen address[:port] [ ... address[:port] ]
Listens for client connections on the specified addresses and ports. If the address is "*" the server will listen for connections on all network interfaces. If the port is omitted, a port between 8000 and 8999 will be used.
Location location of server
Specifies a human-readable location of the server.
LogFile path
Specifies a log file to use. The path "stderr" causes all log messages to be directed to the standard error file descriptor.
LogLevel {Debug|Info|Error}
Specifies the verbosity of logged messages. "Debug" is the most verbose level, logging all messages. "Info" provides basic progress and status messages. "Error" provides only error messages.
MakeAndModel make model
Specifies the make and model of the server.
MaxCompletedJobs number
Specifies the maximum number of completed jobs that are retained for job history. The value 0 specifies there is no limit. Note: ippserver currently removes completed jobs from the job history after 60 seconds.
MaxJobs number
Specifies the maximum number of pending and active jobs that can be queued at any given time. The value 0 specifies there is no limit.
Name name of server
Specifies the human-readable name of the server.
OwnerEmail name@example.com
Specifies the email address of the owner or administrator of the server.
OwnerLocation location
Specifies the human-readable location of the owner or administrator of the server.
OwnerName name
Specifies the name of the owner or administrator of the server.
OwnerPhone phone-number
Specifies the telephone number of the owner or administrator of the server.
SpoolDir path
Specifies the location of print job spool files.
SubscriptionPrivacyAttributes {all|default|none|list of attributes and groups}
Specifies which subscription object attribute values are considered private. "All" will hide all attributes except "notify-job-id", "notify-printer-uri", "notify-subscription-id", and "notify-subscription-uuid". "Default" hides all description and template attributes but not status attributes. "None" does not hide any attributes. A list of (space-delimited) attributes and groups names specific attributes, all description ("subscription-description"), and/or all template ("subscription-template") attributes. The default value is "default".
SubscriptionPrivacyScope {all|default|owner|none}
Specifies which users can query private subscription attribute values. "All" means that all users can query private subscription attribute values. "Default" means that the subscription owner and any administrator or operator can query private subscription attribute values. "Owner" means that only the subscription owner can query private subscription attribute values. "None" means that no user can query private subscription attribute values. The default is "default".
UUID uuid
Specifies the UUID of the server.

Print Service Configuration Files

Each 2D print service is configured by a print/name.conf configuration file, where "name" is the name of the service in the printer URI, e.g., "ipps://hostname/ipp/print/name". Each 3D print service is configured by a print3d/name.conf configuration file, where "name" is the name of the service in the printer URI, e.g., "ipps://hostname/ipp/print3d/name". Each line consists of a directive followed by its value(s). Comments start with the # character and continue to the end of the line. The following directives are supported:
Attr value-tag name value(s)
Specifies a Printer Description attribute. The format is further defined in ipptoolfile(7).
AuthPrintGroup group
Specifies the group of users that is allowed to do printing operations.
AuthProxyGroup group
Specifies the group of users that is allowed to do proxy operations.
Command command
Specifies the command to run when processing jobs. The ipptransform(1) command can be used for many printers.
DeviceURI uri
Specifies the printer's device URI.
Make manufacturer
Specifies the manufacturer name for the printer.
Model model
Specifies the model for the printer.

Print Service Icon Files

The icon for each 2D print service is stored in the print/name.png file. Similarly, the icon for each 3D print service is stored in the print3d/name.png file.

See Also

ipptoolfile(5), ISTO PWG Internet Printing Protocol Workgroup (http://www.pwg.org/ipp)

Copyright

Copyright © 2014-2018 by the IEEE-ISTO Printer Working Group. Copyright © 2007-2018 by Apple Inc.