Supysonic

Supysonic is a Python implementation of the Subsonic server API.

Install

  1. Connect to your slot through SSH

  2. Create a virtualenv with the instructions found here or use an existing one.

  3. With your virtualenv activated, install the Python modules supysonic requires

    pip install flask pillow storm simplejson requests mutagen watchdog uwsgi
    
  4. Download and install the latest supysonic release

    git clone https://github.com/spl0k/supysonic.git
    cd supysonic
    python setup.py install
    
  5. Add ~/supysonic/bin to your shell's PATH.

    echo "PATH=\$PATH:\$HOME/supysonic/bin" >> ~/.bashrc && source ~/.bashrc
    
  6. Create some required directories: mkdir -p ~/.config/supysonic ~/.config/supysonic/webcache

  7. Create the ~/.supysonic file with the following contents. You can use nano ~/.supysonic to edit the file.

    [base]
    database_uri = sqlite:////home/user/.config/supysonic/library.db
    
    [webapp]
    cache-dir = /home/user/.config/supysonic/webcache
    
    [transcoding]
    transcoder_mp3_mp3 = lame --quiet --mp3input -b %outrate %srcpath -
    transcoder = ffmpeg -i %srcpath -ab %outratek -v 0 -f %outfmt -
    decoder_mp3 = mpg123 --quiet -w - %srcpath
    decoder_ogg = oggdec -o %srcpath
    decoder_flac = flac -d -c -s %srcpath
    encoder_mp3 = lame --quiet -b %outrate - -
    encoder_ogg = oggenc2 -q -M %outrate -
    
  8. Run sqlite3 ~/.config/supysonic/library.db then run the following commands on the sqlite prompt to import the database scheme:

     .read /home/user/supysonic/schema/sqlite.sql
     .quit
    
  9. Run supysonic-cli then run the following commands to configure supysonic for use. Make sure to replace password with the password you would like to use.

     user add user -p password -a
     folder add files /home/user/files
     exit
    
  10. Start supysonic. Port 57016 has been automatically generated for you, but you may use another 5 digit port between 10000 and 65535.

    screen -dmS supysonic ~/virtualenv/bin/uwsgi --http 0.0.0.0:57016 --wsgi-file ~/supysonic/cgi-bin/supysonic.wsgi
    
  11. Rescan your library by browsing to http://server.whatbox.ca:57016/folder/scan

  12. (Optional) Add supysonic to cron

    The follow line can be added to your crontab to make sure supysonic launches automatically on a server restart:

    @reboot . /home/user/virtualenv/bin/activate && screen /home/user/virtualenv/bin/python /home/user/virtualenv/bin/uwsgi --http 0.0.0.0:57016 --wsgi-file /home/user/supysonic/cgi-bin/supysonic.wsgi
    

Adding additional folders

  1. Connect to your seedbox through SSH

  2. Activate your virtualenv with the instructions found here.

  3. Run supysonic-cli to configure supysonic with extra folders:

    folder add files /home/user/files
    exit
    
  4. Rescan your library

    Visit http://server.whatbox.ca:57016/folder/scan to refresh your library.

Web Interface

You may use the web interface by going to http://server.whatbox.ca:57016/.