pianod(1) BSD General Commands Manual pianod(1) NAME pianod — Multisource music daemon. SYNOPSIS pianod [-v] [-S] [-p port] [-P httpport] [-s httpsport] [-c clientdir] [-d directory] [-n nobodyuser] [-g groups] DESCRIPTION pianod is a daemon that plays music from multiple online services and lo‐ cal media. pianod provides a TCP/IP line-oriented socket interface and a Websockets interface, each allowing multiple clients to connect for sta‐ tus and control. The application protocol (command/response set) is identical between line-oriented and Websocket connections. The line-oriented protocol is accessible with nc(1) or telnet(1); to port 4445. The included web-based client may be accessed by browsing the HTTP port (for example, http://localhost:4446). Line sessions may also be initiated on the HTTP or HTTPS ports via the greeting "HELO pianod". OPTIONS -v Report version and build information, then exit. Flagged once, supplies only pianod version; twice, pianod configura‐ tion and library versions; thrice, details about library con‐ figurations. -S Shadow system users. Accounts are created on-demand by au‐ thenticating with their system username and password, if they are assigned a valid shell. Shadow accounts are purged during launch when the corresponding system account has been removed. If this option is subsequently disabled, already-created shadow accounts are left intact. If rebuilt with support for shadowing removed, accounts are not purged but will require new passwords (unless the user previously assigned an applica‐ tion password of their own volition). -p port The line port, default 4445. When set to 0, the line-oriented port is disabled. -P port The HTTP port, default 4446 or -p port + 1. When set to 0, the HTTP server and Websockets are disabled. -s port The HTTPS port, default 4447, -p port + 2, or -P port + 1. When set to 0, or when the required X509 certificate and keys are not present, the HTTPS server and secure websockets are disabled. -c clientdir Location of files to be served via HTTP(S). The server only serves files (no server-side processing); this is intended to serve a web applet that will then communicate using Websock‐ ets. -d directory Sets the location for pianod configuration and data files. -n nobodyuser When invoked as root, the user to change to after startup. pianod assumes both the user and group id of the specified user. Defaults to nobody. -g groups When invoked as root, a comma-separated list of supplementary groups to assume after startup. Defaults to the supplementary groups of the nobodyuser (see -n). ENVIRONMENT XDG_CONFIG_HOME Sets the location of configuration files. Files are stored in a pianod directory within this. HOME If XDG_CONFIG_HOME is not set, and pianod is not running as root, then files are stored in $HOME/.config/pianod. FILES Configuration file location is set by XDG_CONFIG_HOME or HOME (see environment, above). If run as root, pianod honors XDG_CONFIG_HOME, but skips HOME and uses SYSCONFDIR, which is set at compile time and is often /etc but varies by platform; MacPorts, for example, uses /opt/local/etc. Whichever location is used, pianod stores the following configuration files in a pianod subdirectory thereof: startscript Commands executed with administrator privilege when pianod is launched. passwd.xml(.gz) This XML file contains a list of pianod users, their passwords (encrypted), privileges and preferences. x509-server.pem The X509 certificate used for HTTPS encryption. x509-server-key.pem The X509 key used for HTTPS encryption source-name.xml(.gz) Music source data files. Not all sources persist to data files. Some may use compression to reduce data storage; in this case, .gz will be appended. $(datadir)/share/pianod/html Default location of web client files. datadir de‐ faults to /usr/local for tarball installs, or opt/local for MacPorts, but may vary depending on options set by configure script. Package managers that risk this being wrong should include -c clientdir in launch configuration files to set cor‐ rect location. /etc/shells Read to determine if a user has a valid shell ac‐ count. DIAGNOSTICS To enable logging, use the -Z and -z flags: -Z value Enables pianod logging for events indicated by value. Logs are sent to standard error, which may be redirected in usual manners. 0xfefd is a good value; see the code for specific flags. -z value Like -Z but for Football events such as connects, disconnects, socket states and HTTP requests. Logging preferences may also be changed at run-time via the SET [FOOT‐ BALL] LOGGING FLAGS command. AUTHOR pianod was developed by Perette Barella and in‐ corporates components from Lars-Dominik Braun and others. See the COPY‐ ING file for full information. COPYRIGHT pianod is Copyright the various authors and is available under the MIT license; see the COPYING file for full text. SEE ALSO piano(1), runmix(1), shells(5) UNIX/Linux/Darwin December 30, 2020 UNIX/Linux/Darwin