Die Installation erfolgt auf eigene Gefahr!
Macht ein manuelles Backup von Subsonic, wenn ihr auf Nummer sicher gehen wollt!
Der Installationsordner liegt unter /volumeX/@appstore/Subsonic -wobei X für die Laufwerksnummer steht- und kann via ssh erreicht werden.
Vorraussetzung:
Eine Synology DiskStation mit einer mv6282 oder mv6281 CPU. was hab ich für eine? ->
klick
DSM 3.1 oder höher
Die 128 MB RAM der kleinen Diskstations sind recht knapp bemessen glaub ich, da Subsonic bei mir bis 150MB belegt (40.000 Lieder), deshalb empfehle ich 256MB oder mehr.
Ein erfolgreich installiertes Java v6 oder v7
klick
Anleitung zur Installation/Update
1. Das subsonic .spk Paket herunterladen
subsonic4.6_spkv16.spk
2. Im DSM einloggen
3. Das Paketzentrum aufrufen (im Hauptmenü)
4. Das heruntergeladene .spk Paket auswählen und Hochladen (Installieren/Aktualisieren)
5. Installationslaufwerk wählen (nur bei Neuinstallation)
6. Starten
Die Subsonic Oberfläche kann dann entweder über den Link im DSM Hauptmenü oder über
http://dein-synology-nas:4040 aufgerufen werden.
Da Subsonic eine Fullscreenanwendung ist, habe ich keinen Frame, sondern einen Link im neuen Fenster erstellt.
Das ganze sollte dann so aussehen
Link im Hauptmenü kann man durch drag and drop auf den Desktop ziehen
Zum technischen
Ich hab das subsonic standalone Paket genommen und die subsonic.sh angepasst:
Rich (BBCode):
...
SUBSONIC_HOME=/usr/syno/synoman/webman/3rdparty/Subsonic
SUBSONIC_HOST=0.0.0.0
SUBSONIC_PORT=4040
SUBSONIC_HTTPS_PORT=0
SUBSONIC_CONTEXT_PATH=/
SUBSONIC_MAX_MEMORY=100
SUBSONIC_PIDFILE=
SUBSONIC_DEFAULT_MUSIC_FOLDER=/volume1/music
SUBSONIC_DEFAULT_PODCAST_FOLDER=/volume1/music/Podcast
SUBSONIC_DEFAULT_PLAYLIST_FOLDER=/volume1/music/playlists
...
falls euer Musikordner nicht unter /volume1/music liegt könnt ihr das später im Subsonic Menü ändern.
Außerdem habe ich die Ordner image und transcode hinzugefügt.
Der Ordner Image enthält Icons für das DSM, der Ordner transcode die codecs ffmpeg und lame.
Beide sind unter LPGL lizensiert.
Das music transcoden klappt auf meiner 211+ ganz gut, das video transcoden ruckelt heftig, da die CPU zu langsam ist.
die Paket Scripte:
INFO:
Rich (BBCode):
package="Subsonic"
version="4.6 syno_package_v15"
maintainer="Sindre Mehus, syno package maintained at synology-forum.de"
description="Subsonic is a free, web-based media streamer, providing ubiquitous access to your music."
arch="88f6281 88f6282"
firmware="3.1-1594"
preinst:
Rich (BBCode):
#!/bin/sh
#--------Subsonic preinstall script
#--------package maintained at synology-forum.de
source /etc/profile
########################################
#check if Jva is installed
if [ -z ${JAVA_HOME} ]; then
echo "Java is not installed or not properly configured. JAVA_HOME is not defined. " > $SYNOPKG_TEMP_LOGFILE
echo "Download and install the Java Synology package from http://wp.me/pVshC-z5" >> $SYNOPKG_TEMP_LOGFILE
exit 1
fi
if [ ! -f ${JAVA_HOME}/bin/java ]; then
echo "Java is not installed or not properly configured. The Java binary could not be located. " > $SYNOPKG_TEMP_LOGFILE
echo "Download and install the Java Synology package from http://wp.me/pVshC-z5" >> $SYNOPKG_TEMP_LOGFILE
exit 1
fi
exit 0
postinst:
Rich (BBCode):
#!/bin/sh
#--------SUBSONIC postinstall script
#--------package maintained at synology-forum.de
####################################
#subsonic user settings
#create subsonic daemon user
synouser --add subsonic `${SYNOPKG_PKGDEST}/passgen 1 20` "Subsonic daemon user" 0 "" ""
#determine the subsonic user homedir and save that variable in the user's profile
#this is needed because librtmp needs to write a file called ~/.swfinfo
#and new users seem to inherit a HOME value of /root which they have no permissions for
SUBSONIC_HOMEDIR=`cat /etc/passwd | sed -r '/Subsonic daemon user/!d;s/^.*:Subsonic daemon user:(.*):.*$/\1/'`
su - subsonic -s /bin/sh -c "echo export HOME=${SUBSONIC_HOMEDIR} >> .profile"
#set ownership of Subsonic folder tree
chown -R subsonic ${SYNOPKG_PKGDEST}
#####################################
#other stuff
#make the Subsonic start script executable
chmod +x ${SYNOPKG_PKGDEST}/subsonic.sh
#set up symlink for the DSM GUI
if [ -d /usr/syno/synoman/webman/3rdparty ]; then
ln -s ${SYNOPKG_PKGDEST}/ /usr/syno/synoman/webman/3rdparty/Subsonic
fi
exit 0
preuninst:
Rich (BBCode):
#!/bin/sh
#--------SUBSONIC preuninstall script
#--------package maintained at synology-forum.de
#stop Subsonic if it is runing
#variable for process ID
PID=""
#use "-f 1"
PID=`ps |grep java |grep subsonic |cut -d " " -f 1`
#if PID is <10000 than "-f 1" is empty so use "-f 2"
if [ -z $PID ]; then
PID=`ps |grep java |grep subsonic |cut -d " " -f 2`
fi
if [ -z $PID ]; then
sleep 1
else
kill $PID
sleep 5
fi
exit 0
postuninst:
Rich (BBCode):
#!/bin/sh
#--------SUBSONIC postuninstall script
#--------package maintained at synology-forum.de
#remove subsonic daemon user
synouser --del subsonic
#remove DSM icon symlink
rm /usr/syno/synoman/webman/3rdparty/Subsonic
#remove temp files
rm -r /tmp/subsonic
exit 0
preupgrade:
Rich (BBCode):
#!/bin/sh
#--------Subsonic preupgrade script
#--------package maintained at synology-forum.de
###########################
#stop Subsonic if it is runing
#variable for process ID
PID=""
#use "-f 1"
PID=`ps |grep java |grep subsonic |cut -d " " -f 1`
#if PID is <10000 than "-f 1" is empty so use "-f 2"
if [ -z $PID ]; then
PID=`ps |grep java |grep subsonic |cut -d " " -f 2`
fi
if [ -z $PID ]; then
sleep 1
else
kill $PID
sleep 5
fi
###########################
#backup subsonic.properties and db Folder
mkdir ${SYNOPKG_PKGDEST}/../subsonic_update_backup
cp ${SYNOPKG_PKGDEST}/subsonic.properties ${SYNOPKG_PKGDEST}/../subsonic_update_backup/
cp -r ${SYNOPKG_PKGDEST}/db ${SYNOPKG_PKGDEST}/../subsonic_update_backup
exit 0
postupgrade:
Rich (BBCode):
#!/bin/sh
#--------SUBSONIC postupgrade script
#--------package maintained at synology-forum.de
################################
#make it working again
#subsonic daemon user has been deleted and recreated so we need to reset ownership (new UID)
chown -R subsonic ${SYNOPKG_PKGDEST}/
#restart Web Station to clear webserver caches
if [ -f /usr/syno/etc/rc.d/S97apache-user.sh ]; then
/usr/syno/etc/rc.d/S97apache-user.sh restart
fi
###############################
#start and stop subsonic for first initialisation
#start subsonic
su - subsonic -s /bin/sh -c /usr/syno/synoman/webman/3rdparty/Subsonic/subsonic.sh
sleep 60
#stop subsonic
#use "-f 1"
PID=`ps |grep java |grep subsonic |cut -d " " -f 1`
#if PID is <10000 than "-f 1" is empty so use "-f 2"
if [ -z $PID ]; then
PID=`ps |grep java |grep subsonic |cut -d " " -f 2`
fi
kill $PID
sleep 5
###############################
#restore subsonic.propierties and db folder
cp ${SYNOPKG_PKGDEST}/../subsonic_update_backup/subsonic.properties ${SYNOPKG_PKGDEST}/
cp -r ${SYNOPKG_PKGDEST}/../subsonic_update_backup/db ${SYNOPKG_PKGDEST}/
#remove backup folder
#clear the next line if you want to keep a backup in the @appstore folder
#rm -r ${SYNOPKG_PKGDEST}/../subsonic_update_backup/
#restart Web Station to clear webserver caches
if [ -f /usr/syno/etc/rc.d/S97apache-user.sh ]; then
/usr/syno/etc/rc.d/S97apache-user.sh restart
fi
exit 0
ich hab die Zeile 46 "#rm -r ${SYNOPKG_PKGDEST}/../subsonic_update_backup/" auskommentiert gelassen, so bleibt ein Backup der Library im Ordner /volumeX/@appstore/subsonic_update_backup bestehen.
start-stop-status
Rich (BBCode):
#!/bin/sh
#--------Subsonic start-stop-status script
#--------package maintained at synology-forum.de
#variable for process ID
PID=""
##############################################
#function to get the process id of Subsonic
subsonic_get_pid ()
{
#use "-f 1"
PID=`ps |grep java |grep subsonic |cut -d " " -f 1`
#if PID is <10000 than "-f 1" is empty so use "-f 2"
if [ -z $PID ]; then
PID=`ps |grep java |grep subsonic |cut -d " " -f 2`
fi
}
case "$1" in
start)
# starting subsonic as subsonic daemon user
su - subsonic -s /bin/sh -c /usr/syno/synoman/webman/3rdparty/Subsonic/subsonic.sh
sleep 5
exit 0
;;
stop)
#stop subsonic
subsonic_get_pid
kill $PID
sleep 2
#delete temp files
rm -r /tmp/subsonic
exit 0
;;
status)
subsonic_get_pid
if [ -z $PID ]; then
#Subsonic is not running
exit 1
else
#subsonic is running
exit 0
fi
;;
log)
echo "${SYNOPKG_PKGDEST}/subsonic.log"
exit 0
;;
esac
An den preupgrade und postupgrade Scripten arbeite ich noch, Änderungen trag ich direkt in diesen post ein.
Falls jemand auf den Geschmack gekommen ist und selber dran basteln möchte, lest bitte erst dieses Howto zum Verständnis
Synology DiskStation Manager 3rd-Party Apps Developer Guide_V2.pdf
Danke an
patters ohne seine Scripte und Tutorials hätte ich das nicht geschafft.
Falls jemand Fragen, Verbesserungsvorschläge hat (ist wie gesagt das erste Mal Linux für mich) oder andere Kommentare abgeben möchte, nur zu!