Running MyTunesRSS headless on Debian Etch

I needed an “easy” way to access my music across my local network independent of the operating system or gadget trying to access it. Bonus points if I could access it via a wifi gadget including the PSP. My search led me to MyTunesRSS by the awesome Codewave.de

MyTunesRSS LogoMyTunesRSS is an application for making your music library available in your local network (LAN) or even the internet. You setup a server with user accounts and access your library through a comfortable web interface.

MyTunesRSS is free for the basic/standard version (with a GUI) which allows you three user accounts on the server. What is even more awesome about it is the application itself is platform independent. They have download binaries for Mac, Windows, or their listed “platform independent” jars which started right up in Debian etch with minimal dependencies. I tested MyTunesRSS on all three platforms and it was pie (I don’t like cake much) to get running on all of them.

Let’s start the how-to for debian. This how-to is written from the command line perspective. I have my music and files and such running on a headless server with no gui. I tested this on my Debian desktop as well with the GUI but I want to keep the server on the same box as the music. To be able to run the system without the GUI you need a license. Headless is NOT available in the free version but if you want to try it before you buy it you can get a 20 day evaluation license from the Codewave Software product site.

The only requirement to run MyTunesRSS is that you have Java runtime 1.5 or better installed on your system. Install java runtime in your favorite way, most simply:

apt-get install sun-java5-jre

Sun recommends you update the alternatives system to have Sun’s tools as the default:

update-java-alternatives -s java-1.5.0-sun

Download the MyTunesRSS platform independent package from Codewave Software. This should be all one line but I have broken it up to fit on the blog better.

wget http://www.codewave.de/products/mytunesrss/
?download_file=mytunesrss-3.1-RC-3-system-independent.zip

Unzip this fancy little thing and stick it where you want it to run from.

unzip mytunesrss-3.1-RC-3-system-independent.zip

Once you have your MyTunesRSS key you need to save it from your email, create .MyTunesRSS in your home directory, name it MyTunesRSS.key and put it in ~/.MyTunesRSS.

Configure an external database with MySQL

My music library has a lot of files. Codewave suggests that if you have more than 10,000 files or even just want a faster & more reliable database, to use an external database rather than the one built into MyTunesRSS. I prefer MySQL if for no other reason than habit so this how-to will use it to continue the MyTunesRSS setup. MyTunesRSS supports both MySQL and PostgreSQL so you can use the later if you are so inclined.

To setup the MySQL database:

apt-get install mysql-server mysql-client mysql-common

The dependencies should be grabbed automagically for you. If not there are lots of really awesome docs on how to setup mysql on your machine. I am not going any further than needed in this doc but if you need help, feel free to email me (contact page on this site provides plenty of ways to get a hold of me).

After all that is done you need to set a root password for it by executing:

mysqladmin -u root password ‘passwordyouwant’

Now login to MSQL and enter the password it prompts you for that you just set. It’s time to setup a database and user for MyTunesRSS to use (you can substitute these values as you wish, just don’t forget what you set them to:

mysql -u root -p

Now create a database called “mytunesrss” and a user called “mytunesrss” with the password “secret” and grant all permission on the new database to that user.

create database mytunesrss character set utf8;

create user mytunesrss identified by ‘secret’;

grant all privileges on mytunesrss.* to mytunesrss;

exit

That’s all we need to do here so we can exit MySQL and go back to working on getting MyTunesRSS configured and working.
First we need to get the java MySQL connector. Go to http://dev.mysql.com/downloads/connector/j/5.0.html and pick a download mirror and get it. Once you have it uncompress it because we only need one file. Create a directory called lib in ~/.MyTunesRSS/ and put the file named mysql-connector-java-5.0.8-bin.jar into the directory you just created.

Now. we need to create a system preferences file to tell MyTunesRSS to connect to the database. go to ~/.MyTunesRSS and use an editor to create a file called system.properties & put the following information into it (making any needed modifications if you changed the information when you first created the database earlier):

database.type=mysql
database.driver=com.mysql.jdbc.Driver
database.connection=jdbc:mysql://localhost/mytunesrss
database.user=mytunesrss
database.password=secret

Save it.

Ok, if you are running this as a headless system there is more to be done before we can start it up. If you are running it as a GUI you can startup MyTunesRSS now by putting this in on the command line which will kick up the GUI for you to change settings and such (I will add how-tos for the GUI at a later time) NOTE that the following is all one line and you need to be in the mytunesrss-3.1-RC-3 directory (again this is all one line, I just broke it up to make it fit here better):

java -Xms32m -Xmx128m -Xbootclasspath/p:lib/codewave-zis.jar
-Djavax.xml.parsers.SAXParserFactory=
org.apache.xerces.jaxp.SAXParserFactoryImpl -jar mytunesrss.jar

For those running a headless system, lets continue on…

The JMX console is a way to manage java applications through a simple interface. This is useful either in headless mode or if you want remote configuration via a web browser. it is activated only when starting up MyTunesRSS in registered mode for configuring the app without using the normal interface. You reach it at http://127.0.0.1:8500 by default.

System properties are:

jmx.host
jmx.port
jmx.username
jmx.password
com.sun.management.jmxremote
com.sun.management.jmxremote.port

We need to put these into the ~/.MyTunesRSS/system.properties file and make some modifications to the settings. Open the file in an editor and add the following to the top of the file:

jmx.host=127.0.0.1
jmx.port=8500
jmx.username=admin
jmx.password=secret
com.sun.management.jmxremote
com.sun.management.jmxremote.port=9876

Modify the first four to your liking and save the file. Now, cd to mytunesrss-3.1-RC-3 and start the badboy up (once again this is all one line):

java -Xms32m -Xmx128m -Xbootclasspath/p:lib/codewave-zis.jar
-Djavax.xml.parsers.SAXParserFactory=
org.apache.xerces.jaxp.SAXParserFactoryImpl -jar mytunesrss.jar – headless

Use a browser to go to the ip that you started MyTunesRSS up on and the port you specified in the jmx settings (port 8500 by default). There are two settings you have to set at a minimum to get MyTunesRSS running

1) You have to specify the directory your music is in
2) You have to specify at least one user account and set a password for that user.

Right now you should be sitting at a screen that looks something like this one:

Java JMX Web Console

Add Music Directories:

Under Domain:MyTunesRSS click on the Link titled MyTunesRSS:type=config.name=Directories

Add music directories to MyTunesRSS

Under the Operations heading the first setting is AddDirectories. In the text box type in the full path to your music (top level directory if you have a subdirectories to organize your music) and click the Invoke button. You can set how your directories are organized below (ie Artist/Album/Track/ ….)

Add User(s):

Go back to the main screen and click the link for MyTunesRSS:type=config.name=Users

Add users to MyTunesRSS

Under the Operations heading go to the addUser section, under the description for Username type a username in the text box and click Invoke. Go back to the previous screen and type in a password under the description for password and click Invoke.

If you want to change the permissions and settings for the user you just created there will now be a MyTunesRSS:type=user,name=(username you just created) link on the main page where you can go in and change the defaults.

Advanced user permissions for MyTunesRSS

I tend to add music at times so I want the database to update while the server is running and see changes automagically. You can set this under MyTunesRSS:type=config.name=Database by changing “Update the database automatically while server is running” to true.

Change database settings for MyTunesRSS

I wanted MyTunesRSS to run on port 80 in this machine since it doesn’t have a webserver running anything else and it won’t be accessible from the outside of my home network. To change the port go to MyTunesRSS:type=config.name=Server and change the default from port 8080 to 80 and click set. I also set the automatic start to true.

Change MyTunesRSS server settings and start the server

Once you have everything set the way you want it, click the Invoke button by the start server on the MyTunesRSS:type=config.name=Server details page.

Assuming there weren’t any errors thrown you should now be able to get to you music through a web browser by specifying the ip/port combo where you just setup MyTunesRSS.

MyTunesRSS Login

If you want to use it as a jukebox and allow streaming and all you can specify the codecs and libraries to use in MyTunesRSS:type=config.name=Streaming and setup the permissions for the users to allow it.

If you are interested in using this on your PSP other than just browsing to it (ie subscribe to the RSS) then head over to Skatter Tech and follow the instructions on the bottom of the doc for the PSP Setup Procedure.

Advertisements

One response to “Running MyTunesRSS headless on Debian Etch

Comments are closed.