ippserver(8)
π NAME π
ippserver(8) β a sample ipp server implementation. Bestie, this is the whole vibe: it's a sample IPP server, and the manual is about to get real detailed. π
β¨ SYNOPSIS β¨
ippserver [ -2 ] [ -C config-directory ] [ -D device-uri ] [ -F output-type/subtype ] [ -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[,...,subtype] ] [ -s speed[,color-speed] ] [ -v[vvv] ] [ -B --help ] [ --no-dns-sd ] [ --no-web-forms ] [ -B --relaxed ] [ -B --state directory ] [ -B --version ] service name
π DESCRIPTION π
Okay so ippserver is a sample Internet Printing Protocol (IPP) server conforming to the IPP Everywhere, IPP Shared Infrastructure Extensions (INFRA), and IPP System Service 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. Lowkey iconic. π¦
β¨ OPTIONS β¨
The following options are recognized by ippserver:
-2β specifies that the printer supports two-sided printing. Slay, duplex. π-Cconfig-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. ποΈ-Ddevice-uri β set the device URI for print output.-Foutput-type/subtype[,...] β specifies the output MIME media type.-Kkeypath β specifies the location of TLS certificates and private keys. π-Mmanufacturer β specifies the manufacturer for the printer.-Pβ specifies that the printer will require a PIN ("job-password") for submitted print jobs. Keep that PIN safe, bestie. π₯-aattributes-file β specifies a file containing attribute definitions for the printer.-ccommand β specifies a command that is used to process job files.-dspool-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β shows program help.--helpβ shows program help.-iiconfile.png β specifies a PNG file for the printer icon. Cute icon moment. π-kβ keeps the print documents in the spool directory rather than deleting them.-llocation β specifies the"printer-location"string for the printer.-mmodel β specifies the model name of the printer.-nhostname β specifies the hostname that is reported by the server. The default is the name returned by thehostname(1)command.-B --no-dns-sdβ disables DNS-SD registrations.-B --no-web-formsβ disables the GET-based web forms that allow web requests to change material, media, and supply levels.-pport β specifies the port number to listen on. The default is a user-specific number from 8000 to 8999.-rsubtype[,...,subtype] β specifies one or more comma-delimited DNS-SD subtypes 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. Chill mode activated. π-sspeed[,color-speed] β specifies the printer speed in pages-per-minute. Fast queen. π¨--statedirectory β specifies a persistent state directory to use. The directory is created if it does not exist. The default is to not save state information between runs.-v[vvv]β be (very) verbose when logging activity to the standard output. Tea time with logs. π--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. No dramatic exits unless somethingβs wrong, bestie. π
π 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. Directory era. π
π 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 thanGet-Printer-Attributes. The default is"No".AuthAdminGroup groupβ specifies the group of print administrators. The default administrator group is"wheel".AuthGroups group [... group]β specifies a list of groups that can be configured via IPP. If not specified, the default for non-root users is the list of groups the user belongs to. Otherwise, the default is the list of valid groups from"adm","admin","daemon","operator","staff", and/or"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.AuthProxyGroup groupβ specifies the group of print proxies. The default proxy 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 theipptransform(1)andipptransform3d(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 allowfile: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.
okay so picking up right where we left off with the config directives, bestie π every single one is here, no skips:
LogLevel {Debug|Info|Error}β sets how chatty the logs are."Debug"is the most verbose level and logs all messages."Info"gives you basic progress and status messages."Error"gives you only error messages.MakeAndModel make modelβ tells the server the make and model. iconic little identity moment πMaxCompletedJobs numberβ max number of completed jobs kept around for job history. The value0means there is no limit. > Heads up bestie:ippservercurrently removes completed jobs from the job history after60seconds.MaxJobs numberβ max number of pending and active jobs that can be queued at any given time. The value0means there is no limit.Name name of serverβ the human-readable name of the server. main character name energy fr β¨OwnerEmail name@example.comβ email address of the owner or administrator of the server.OwnerLocation locationβ human-readable location of the owner or administrator of the server.OwnerName nameβ name of the owner or administrator of the server.OwnerPhone phone-numberβ telephone number of the owner or administrator of the server.SpoolDir pathβ where print job spool files live. Default is a per-process temporary directory.StateDir pathβ where persistent printer state files live. Default is the empty string, so no state is persisted.SubscriptionPrivacyAttributes {all|default|none|list of attributes and groups}β which subscription object attribute values count as private."All"hides 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". lowkey a whole privacy vibe check πSubscriptionPrivacyScope {all|default|owner|none}β which users can query private subscription attribute values."All"means all users can query private subscription attribute values."Default"means the subscription owner and any administrator or operator can query private subscription attribute values."Owner"means only the subscription owner can query private subscription attribute values."None"means no user can query private subscription attribute values. The default is"default".UUID uuidβ the UUID of the server. slay, unique identifier π
π¨οΈ PRINT SERVICE CONFIGURATION FILES π¨οΈ
okay so 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 is a directive followed by its value(s). Comments start with the # character and continue to the end of the line. These are the supported directives, bestie:
Attr value-tag name value(s)β specifies a Printer Description attribute. The format is further defined inipptoolfile(7). very "go read the other page" of it all πAuthPrintGroup groupβ the group of users allowed to do printing operations.AuthProxyGroup groupβ the group of users allowed to do proxy operations.Command commandβ the command to run when processing jobs. Theipptransform(1)command can be used for many printers.DeviceURI uriβ the printer's device URI.Make manufacturerβ the manufacturer name for the printer.Model modelβ the model for the printer.OutputFormat type/subtypeβ the output MIME media type for the printer.Profile name filename.icc { ... }β a named ICC profile plus any member Job Template attributes that select the profile. fancy profile behavior, we love β¨Strings language filename.stringsβ a localization ("strings") file for the specified language.WebForms Yes/WebForms Noβ enables or disables GET-based web forms which are used to manipulate the material, media, and supply levels. The default is"Yes"to enable GET-based forms.
π VARIABLES IN ATTRIBUTE VALUES π
ippserver defines these additional ipptoolfile(5) variables that can be used in attribute values:
SERVERNAMEβ the host name of the server, for example"server.local".SERVERPORTβ the port number of the server, for example"8501".
π¦ 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. cute little visual identity moment π
β SEE ALSO β
ippdoclint(7)ipptransform(7)ipptransform3d(7)ipptoolfile(5)- ISTO PWG Internet Printing Protocol Workgroup (
http://www.pwg.org/ipp)
π COPYRIGHT π
Copyright Β© 2014-2019 by the IEEE-ISTO Printer Working Group. Copyright Β© 2007-2019 by Apple Inc.
okay bestie, that's the whole page β this one comes from source/version ippsample and is dated 2019-05-21, and the page itself is ippserver(8). go forth and serve some IPP, periodt πβ¨π«Ά
π¦ where this page comes from
- debian bookworm: ippsample-data 0.0~git20220607.72f89b3-1 Β· Apache-2.0
- ubuntu resolute: ippsample-data 0.0.0~git20220215.f365352-1build1 Β· Apache-2.0
- ubuntu stonking: ippsample-data 0.0.0~git20220215.f365352-2 Β· Apache-2.0
- Copyright Β© 2014-2019 by the IEEE-ISTO Printer Working Group
- Copyright Β© 2014-2019 by Apple Inc
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms