Integrating Subsonic with Zentyal

06 Mar 2011

I really love services like Spotify but I feel like loosing my freedom when I get used to them. Because of this lately I have been looking for open source alternatives to (eventually) replace these services with ones hosted by myself. This is the case of Subsonic, which lets you to listen all your music from a web browser or even from an Android phone. Also this is a very good example on how easy it is to integrate 3th party software with Zentyal. Let’s see how to do it:

Subsonic - Easy listening

First step: Installation

We will start from a working Zentyal server and install Subsonic on top of it. You will need to follow installation guide for Debian/Ubuntu. Basically these are the steps:

Install Java and the previously downloaded Subsonic .deb package:

sudo apt-get install openjdk-6-jre
sudo dpkg -i subsonic-x.x.deb

It is also recommended to install typical multimedia transcoders: sudo apt-get install lame flac faad vorbis-tools ffmpeg

After installing, open the Subsonic web page on http://zentyal-ip:4040. A wizard will show up letting you configure basic Subsonic features.

Remember that you may need to configure Zentyal’s firewall to open 4040 port. Firewall section of documentation is a good source for that.

Second step: LDAP configuration

Subsonic includes a LDAP backend, so you can configure it to bind to Zentyal’s one. Go to Settings > Advanced and fill LDAP info as seen on the image:

LDAP URL: ldap://localhost:389/ou=Users,dc=zentyal,dc=com
LDAP Search Filter: (uid={0})

If your Zentyal Users and Groups module is configured as slave you will need to change the port in the URL to 1389.

Subsonic LDAP configuration

Congratulations, it’s done! Now your Zentyal users can login into Subsonic and play and share music!

Bonus track (Optional): File Sharing

You can take advantage of Samba based File Sharing module. By configuring a share pointing to the place where the music is stored users will be able to upload and organize their music. In the following screenshots you can see a share and its access list configuration, giving read and write permissions to developer’s group.

As you see it’s very easy to integrate Zentyal with other applications through LDAP, service hooks or even writing your own module! If you have any doubts I’m sure you can find help in Zentyal mailing lists or community forum.