From ArchWiki
Revision as of 05:36, 5 February 2013 by Ichimonji10 (talk | contribs) (Heavy updates to the "transcoding" section. Fixed factual mistakes and made the language more readable.)
Jump to: navigation, search

Subsonic is a music server that lets you store your music on one machine and play it from other machines, cell phones, via a web interface, or various other applications. It can be installed using the subsonicAUR package on AUR.

Additional config

Run subsonic daemon NOT as root

Stop the subsonic daemon if running:

# rc.d stop subsonic

Add a system user "subsonic" without home folder and add it to "audio" group if you want to use the "jukebox" feature:

# useradd --system --groups audio subsonic

Change folder owners as follow. Path may change; these are the default ones:

# chown -R subsonic:subsonic /tmp/subsonic
# chown -R subsonic:subsonic /var/subsonic
# chown -R root:root /var/subsonic/transcode
# chown -R root:root /var/subsonic/jetty/*/webapp

Change this line in /var/subsonic/


to this one:

sudo -u subsonic ${JAVA} -Xmx${SUBSONIC_MAX_MEMORY}m \

and restart the subsonic daemon.

# rc.d start subsonic

Install Transcoders

By default, Subsonic uses FFmpeg to transcode videos and songs to an appropriate format and bitrate on-the-fly. After installation, you can change these defaults so that, for example, Subsonic will transcode FLAC files using FLAC + LAME instead of FFmpeg. At a minimum, you should Install the ffmpeg package from the official repositories. You may also want to install flac and lame.

For security reasons, Subsonic will not search the system for any transcoders. Instead, the user has to create links to the necessary transcoders in the /var/subsonic/transcode folder. Create the transcode folder if it does not already exist, then make the necessary symlinks.

# mkdir /var/subsonic/transcode
# ln -s `which ffmpeg`
# ln -s `which flac`
# ln -s `which lame`

Finally, restart subsonic daemon.

# rc.d start subsonic

Systemd Setup

The subsonic installation includes a systemd service file. To install it:

# cp /var/subsonic/subsonic.service /usr/lib/systemd/system/subsonic.service

Then, run:

# sudo systemctl --system daemon-reload 

And finally enable it:

# sudo systemctl enable subsonic.service


UTF-8 file names not added to the database

You must have at least one UTF-8 locale installed.

If you start subsonic using /etc/rc.d/subsonic, and your /etc/rc.conf has DAEMON_LOCALE="no", then the subsonic daemon will be started with the C locale, and Java will skip any folders with "international characters" (e.g. ßðþøæå etc.). Either set DAEMON_LOCALE to "yes" (but this will affect all rc.daemons), or add a line to the beginning of /var/subsonic/ which sets LANG to an installed UTF-8 locale, e.g. LANG=nn_NO.utf8.

External links