Subsonic is a free, web-based media streaming application. After evaluating it alongside Jinzora and Sockso, I selected it for use on my servers. Internally, I have been using Firefly Media Server (previously called mt-daapd) to make music available to different desktop music players. Subsonic had several features that made it a good choice including allowing music from several different directories, Last.fm scrobbling support/integration, and multiple users with passwords and support for LDAP integration.
I installed Subsonic on a server running Ubuntu Hardy Heron Server. I built on a previous tutorial for installing Subsonic on Ubuntu.
First, I install the necessary Java packages, Tomcat, and Lame. I broke it into three installs to be safe. It could probably be done in one.
apt-get install java-common sun-java6-bin sun-java6-jdk sun-java6-jre apt-get install tomcat5.5 apt-get install lame
Next, I stopped Tomcat before changing the Tomcat configuration and installing the Subsonic web application.
/etc/init.d/tomcat5.5 stop
Next, I disabled the Tomcat security stuff. It’s required for Subsonic to work. You could do this by editing the file directly (/etc/init.d/tomcat5.5), but I use Sed so that I can automate the installation process in a script.
cd /etc/init.d/ mv tomcat5.5 tomcat5.5.bak sed "s/TOMCAT5_SECURITY=yes/TOMCAT5_SECURITY=no/" tomcat5.5.bak > tomcat5.5 chmod +x tomcat5.5 rm tomcat5.5.bak
Next, I downloaded, decompressed, and installed the subsonic application.
cd /tmp/ wget http://superb-east.dl.sourceforge.net/sourceforge/subsonic/subsonic-3.6-war.zip unzip subsonic-3.6-war.zip -d subsonic mv subsonic/subsonic.war /var/lib/tomcat5.5/webapps/
Subsonic expects certain directories to exist. The following creates those directories and sets the permissions.
mkdir /var/subsonic mkdir /var/subsonic/playlists mkdir /var/subsonic/transcode chown -R tomcat55:nogroup /var/subsonic
Subsonic uses Lame to transcode/compress mp3s for streaming. The next two lines make Lame available to Subsonic.
cd /var/subsonic/transcode ln -s /usr/bin/lame lame
Now we can start Tomcat again.
/etc/init.d/tomcat5.5 start
I always like to clean up after my installs. This removes the files we downloaded and no longer need any more.
rm -R /tmp/subsonic*
Subsonic should now be running and available at http://localhost:8180/subsonic/. The port might vary depending on the installation of Tomcat. Log in. You can change the password by clicking on “Settings” and then “Users” and then selecting the admin account.
Next, I configured LDAP authentication. It was as simple as clicking on “Settings” and then “Advanced” and then “Enable LDAP authentication.” I then filled in the following:
- LDAP URL: ldap://athos.lund:389/dc=lund
- LDAP search filter: (uid={0})
I left the “LDAP manager DN” and “Password” blank. I checked “Automatically create users in Subsonic” so that any user in LDAP can automatically log into Subsonic.
If you would like to make Subsonic available on port 80 like most web applications instead of port 8180, check out my post on Reverse Proxies.
Hi Zachary,
Thanks so much for putting this together. I struggled with getting Subsonic to run as something other than root and this worked fantastically. If it’s OK I’d like to repost in the Ubuntu and Subsonic forums (with credit to you of course) as I think there are a lot of folks struggling with this issue.
@Chris Squier, I have replied to your post via email.