diff --git a/snapserver.conf b/snapserver.conf new file mode 100644 index 0000000..b50ced4 --- /dev/null +++ b/snapserver.conf @@ -0,0 +1,238 @@ +############################################################################### +# ______ # +# / _____) # +# ( (____ ____ _____ ____ ___ _____ ____ _ _ _____ ____ # +# \____ \ | _ \ (____ || _ \ /___)| ___ | / ___)| | | || ___ | / ___) # +# _____) )| | | |/ ___ || |_| ||___ || ____|| | \ V / | ____|| | # +# (______/ |_| |_|\_____|| __/ (___/ |_____)|_| \_/ |_____)|_| # +# |_| # +# # +# Snapserver config file # +# # +############################################################################### + +# default values are commented +# uncomment and edit to change them + +# Settings can be overwritten on command line with: +# "--
.=", e.g. --server.threads=4 + + +# General server settings ##################################################### +# +[server] +# Number of additional worker threads to use +# - For values < 0 the number of threads will be 2 (on single and dual cores) +# or 4 (for quad and more cores) +# - 0 will utilize just the processes main thread and might cause audio drops +# in case there are a couple of longer running tasks, such as encoding +# multiple audio streams +#threads = -1 + +# the pid file when running as daemon (-d or --daemon) +#pidfile = /var/run/snapserver/pid + +# the user to run as when daemonized (-d or --daemon) +#user = snapserver +# the group to run as when daemonized (-d or --daemon) +#group = snapserver + +# directory where persistent data is stored (server.json) +# if empty, data dir will be +# - "/var/lib/snapserver/" when running as daemon +# - "$HOME/.config/snapserver/" when not running as daemon +#datadir = + +# +############################################################################### + + +# Secure Socket Layer ######################################################### +# +[ssl] +# Certificate files are either specified by their full or relative path. Certificates with +# relative path are searched for in the current path and in "/etc/snapserver/certs" + +# Certificate file in PEM format +#certificate = + +# Private key file in PEM format +#certificate_key = + +# Password for decryption of the certificate_key (only needed for encrypted certificate_key file) +#key_password = + +# Verify client certificates +#verify_clients = false + +# List of client CA certificate files, can be configured multiple times +#client_cert = +#client_cert = + +# +############################################################################### + + +# HTTP RPC #################################################################### +# +[http] +# enable HTTP Json RPC (HTTP POST and websockets) +#enabled = true + +# address to listen on, can be specified multiple times +# use "0.0.0.0" to bind to any IPv4 address or :: to bind to any IPv6 address +# or "127.0.0.1" or "::1" to bind to localhost IPv4 or IPv6, respectively +# use the address of a specific network interface to just listen to and accept +# connections from that interface +#bind_to_address = :: + +# which port the server should listen to +#port = 1780 + +# enable HTTPS Json RPC (HTTPS POST and ssl websockets) +#ssl_enabled = false + +# same as 'bind_to_address' but for SSL +#ssl_bind_to_address = :: + +# same as 'port' but for SSL +#ssl_port = 1788 + +# serve a website from the doc_root location +# disabled if commented or empty +doc_root = /usr/share/snapserver/snapweb + +# Hostname or IP under which clients can reach this host +# used to serve cached cover art +# use as placeholder for your actual host name +#host = + +# Optional custom URL prefix for generated URLs where clients can reach +# cached album art, to e.g. match scheme behind a reverse proxy. +#url_prefix = https:// + +# +############################################################################### + + +# TCP RPC ##################################################################### +# +[tcp] +# enable TCP Json RPC +#enabled = true + +# address to listen on, can be specified multiple times +# use "0.0.0.0" to bind to any IPv4 address or :: to bind to any IPv6 address +# or "127.0.0.1" or "::1" to bind to localhost IPv4 or IPv6, respectively +# use the address of a specific network interface to just listen to and accept +# connections from that interface +#bind_to_address = :: + +# which port the server should listen to +#port = 1705 +# +############################################################################### + + +# Stream settings ############################################################# +# +[stream] +# address to listen on, can be specified multiple times +# use "0.0.0.0" to bind to any IPv4 address or :: to bind to any IPv6 address +# or "127.0.0.1" or "::1" to bind to localhost IPv4 or IPv6, respectively +# use the address of a specific network interface to just listen to and accept +# connections from that interface +#bind_to_address = :: + +# which port the server should listen to +#port = 1704 + +# source URI of the PCM input stream, can be configured multiple times +# The following notation is used in this paragraph: +# : the whole expression must be replaced with your specific setting +# [square brackets]: the whole expression is optional and can be left out +# [key=value]: if you leave this option out, "value" will be the default for "key" +# +# Format: TYPE://host/path?name=[&codec=][&sampleformat=][&chunk_ms=][&controlscript=[&controlscriptparams=]] +# parameters have the form "key=value", they are concatenated with an "&" character +# parameter "name" is mandatory for all sources, while codec, sampleformat and chunk_ms are optional +# and will override the default codec, sampleformat or chunk_ms settings +# Available types are: +# pipe: pipe:///?name=[&mode=create], mode can be "create" or "read" +# librespot: librespot:///?name=[&username=&password=][&devicename=Snapcast][&bitrate=320][&wd_timeout=7800][&volume=100][&onevent=""][&normalize=false][&autoplay=false][¶ms=] +# note that you need to have the librespot binary on your machine +# sampleformat will be set to "44100:16:2" +# file: file:///?name= +# process: process:///?name=[&wd_timeout=0][&log_stderr=false][¶ms=] +# airplay: airplay:///?name=[&port=5000] +# note that you need to have the airplay binary on your machine +# sampleformat will be set to "44100:16:2" +# tcp server: tcp://:?name=[&mode=server] +# tcp client: tcp://:?name=&mode=client +# alsa: alsa:///?name=&device=[&send_silence=false][&idle_threshold=100][&silence_threshold_percent=0.0] +# meta: meta://///.../?name= + + + +#source = pipe:///tmp/snapfifo?name=default +source = meta:///Announcements/default?name=MainAudio +source = tcp://0.0.0.0:4953?name=Announcements&sampleformat=48000:16:2&codec=pcm +source = pipe:///run/snapserver/snapfifo?name=default +#source = spotify:///librespot?name=Spotify&username=guzzbinkles&password=Finn05092013&devicename=Snapcast&bitrate=320 + + + +#announcements +#source = tcp://0.0.0.0:4953?name=Announcements&sampleformat=22050:16:1&codec=pcm +#source = spotify:///librespot?name=Spotify&devicename=Snapcast&bitrate=320 + + +# Plugin directory, containing scripts, referred by "controlscript" +#plugin_dir = /usr/share/snapserver/plug-ins + +# Default sample format: :: +#sampleformat = 48000:16:2 + +# Default transport codec +# (flac|ogg|opus|pcm)[:options] +# Start Snapserver with "--stream:codec=:?" to get codec specific options +#codec = flac + +# Default source stream read chunk size [ms]. +# The server will continously read this number of milliseconds from the source into buffer and pass this buffer to the encoder. +# The encoded buffer is sent to the clients. Some codecs have a higher latency and will need more data, e.g. Flac will need ~26ms chunks +#chunk_ms = 20 + +# Buffer [ms] +# The end-to-end latency, from capturing a sample on the server until the sample is played-out on the client +#buffer = 1000 + +# Send audio to muted clients +#send_to_muted = false +# + + +# Streaming client options #################################################### +# +[streaming_client] + +# Volume assigned to new snapclients [percent] +# Defaults to 100 if unset +#initial_volume = 100 +# +############################################################################### + + +# Logging options ############################################################# +# +[logging] + +# log sink [null,system,stdout,stderr,file:] +# when left empty: if running as daemon "system" else "stdout" +#sink = + +# log filter :[,:]* +# with tag = * or and level = [trace,debug,info,notice,warning,error,fatal] +#filter = *:info +# +###############################################################################