pianod
—
Multisource music daemon.
pianod |
[-v ] [-S ]
[-p port]
[-P httpport]
[-s httpsport]
[-c clientdir]
[-d directory]
[-n nobodyuser]
[-g groups] |
pianod
is a daemon that plays music from
multiple online services and local media. pianod
provides a TCP/IP line-oriented socket interface and a Websockets interface,
each allowing multiple clients to connect for status 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".
-v
- Report version and build information, then exit. Flagged once, supplies
only pianod version; twice, pianod configuration and library versions;
thrice, details about library configurations.
-S
- Shadow system users. Accounts are created on-demand by authenticating 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 application 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 Websockets.
-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).
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.
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 defaults 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 correct location.
- /etc/shells
- Read to determine if a user has a valid shell account.
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
[FOOTBALL] LOGGING FLAGS command.
pianod
was developed by Perette Barella
<perette@deviousfish.com> and incorporates components from
Lars-Dominik Braun and others. See the COPYING file for full
information.
pianod
is Copyright the various authors
and is available under the MIT license; see the COPYING file for full
text.