Subsonic auf der DS

Status
Für weitere Antworten geschlossen.

gigon

Benutzer
Mitglied seit
20. Mai 2011
Beiträge
51
Punkte für Reaktionen
0
Punkte
0
Subsonic (www.subsonic.org) ist - ähnlich wie die Audio Station - ein Musik (seit Version 4.3 auch Video) Server mit Web-Oberfläche, allerdings Java basiert.

Mit Patters Java Paket pcloadletter.co.uk/2011/08/23/java-package-for-synology/ habe ich es geschafft Subsonic auf meiner DS 211+ zum laufen zu bringen.
Zudem habe ich mir ein Auto start/stop script geschrieben.

Mein nächstes Ziel ist ein spk Paket zur einfacheren Installation, ähnlich der Serviio Version von Patters.

Ich habe kaum Erfahrungen mit Linux oder der DS, falls also jemand Interesse an Subsonic oder einer Anleitung zur Installation hat und/oder Lust mir zu helfen, meldet euch.
 

DROPTABLE

Benutzer
Mitglied seit
02. Dez 2008
Beiträge
52
Punkte für Reaktionen
0
Punkte
6
Hört sich gut an !
Ich bin mal gespannt wie es aussehen wird
 

Matthieu

Benutzer
Mitglied seit
03. Nov 2008
Beiträge
13.222
Punkte für Reaktionen
88
Punkte
344
Hi,
möchtest du das Paket auch auf dem Community Package Hub hochladen?
Meld dich per PN.

MfG Matthieu
 

Cyber

Benutzer
Mitglied seit
14. Sep 2011
Beiträge
56
Punkte für Reaktionen
0
Punkte
6
Subsonic installieren

Hallo

Hab mir die Anwendung runtergeladen und möchte sie nun auf meiner DS111 installieren , java läuft bereits auf der DS

Wie instaliert man das Archiv subsonic-4.6.beta2-standalone.tar.gz hab da leider keinen Plan

Ne Schritt für Schritt Anleitung wäre schön
 

voon

Benutzer
Mitglied seit
04. Dez 2011
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Interessant. Patter hat leidr kein Paket fuer eine DS209+II ... da e500v2 CPU. Hab mir mal bei Oracle manuell das e500v2 Java SE 6 tar paket runtergeladen sowie den Subsonic tarball ... geplant ist erstmal das installieren irgendwohin, wo der DS209 webserver drauf zugreifen kann, ohne grosses veraendern des systems. Allerdings hab ich noch keine Ahnung, wo das public directory des webservers ist, mal googlen gehen :) Momentan ist das java binary allerdings etwas ungluecklich:

Funstation> ./java
./java: /lib/libc.so.6: version `GLIBC_2.4' not found (required by ./java)
./java: /lib/libc.so.6: version `GLIBC_2.4' not found (required by /usr/java/ejre1.6.0_27/bin/../lib/ppc/jli/libjli.so)

Ich nehm mal an, damit ist schon endstation, da auf meiner DS209+II lediglich GLIBC 2.3.4 installiert ist....
 
Zuletzt bearbeitet:

gigon

Benutzer
Mitglied seit
20. Mai 2011
Beiträge
51
Punkte für Reaktionen
0
Punkte
0
@Cyber: kommt

Das spk ist soweit fertig
Subsonic läuft, lässt sich starten und stoppen.
Der Link im DSM wird erzeugt

was noch nicht korrekt funktioniert ist das anlegen eines Backups der Database beim update, d.h. das update läuft, nur die Accounts und der searchindex sind weg.
Der Backup Ordner in dem die subsonic.properties und der db Ordner kopiert werden sollen, wird einfach nicht erstellt, obwohl es von Hand funktioniert...
 

gigon

Benutzer
Mitglied seit
20. Mai 2011
Beiträge
51
Punkte für Reaktionen
0
Punkte
0
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
Subsonic_DSM_klein.png

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!
 
Zuletzt bearbeitet:

Matthieu

Benutzer
Mitglied seit
03. Nov 2008
Beiträge
13.222
Punkte für Reaktionen
88
Punkte
344
Hast du das Java-Paket als notwendig für die Installation definiert? Wenn nein könntest du das ja auch noch machen :)
Wie steht z.B. hier: http://package.10trum.de/docs/Developers.pdf
("install_dep_service" in INFO)

MfG Matthieu
 

gigon

Benutzer
Mitglied seit
20. Mai 2011
Beiträge
51
Punkte für Reaktionen
0
Punkte
0
Im preinstall Script ist eine abfrage drin ob JAVA_HOME definiert ist.
Ich lass die package abfrage raus, da dieses package nicht der einige Weg ist, Java zu installieren.
Falls Java nicht installiert ist, gibt es ne Fehlermeldung und die Installation wird abgebrochen.
 

gigon

Benutzer
Mitglied seit
20. Mai 2011
Beiträge
51
Punkte für Reaktionen
0
Punkte
0
leider kann ich meine alten beiträge nur 360min lang ändern, also hier ein neuer:
es gibt eine neue Version
subsonic4.6_spkv17.spk

Neuinstallation: wie gehabt
Upgrade: es kann u.U. sein, dass die Database nicht übernommen wird (vorher manuelles Backup machen!) oder Subsonic nach einem Upgrade nicht läuft. In diesem Fall hilft nur eine Deinstallation und Neuinstallation

Changelog:

subsonic4.6_spkv17 or 4.6-17
o added this changelog
o added LICENSE file
o added restarting Message after install/upgrade
o fixed broken link in DSM
o fixed crash on update when Subsonic is running
o fixed some troubles with Subsonic Logo in package center
o changed backup routine on update: all relevant files should be backed up now
o changed the version tag in INFO layout from "%subsonic version% syno_package_v%spk version%" to "%subsonic version%-%spk version%"
o contains Subsonic stable release version 4.6
 
Zuletzt bearbeitet:

Cyber

Benutzer
Mitglied seit
14. Sep 2011
Beiträge
56
Punkte für Reaktionen
0
Punkte
6
Hallo
Möchte mich recht herzlich bedanke, für deine Arbeit am Subsonic .spk
Hab das Teil an der DS 111 am Laufen.... läuft so weit super Danke !
Nur mit den Apps über iPhone bekomm ich es nicht zum Laufen, aber egal
 

gigon

Benutzer
Mitglied seit
20. Mai 2011
Beiträge
51
Punkte für Reaktionen
0
Punkte
0
Hm auf meinem iphone 4 läuft mit iSub alles wunderbar.

Hast du vielleicht das http:// vor der IP oder die 4040 (oder den geänderten Port) nach der IP vergessen?
sollte so aussehen: http://192.168.x.x:4040

Bei mir klappt das auch unterwegs über 3G via dyndns also http://"meineadresse".dyndns.org:4040 falls du dich da registriert hast.
MfG Eric.
 

DKeppi

Benutzer
Mitglied seit
01. Apr 2011
Beiträge
3.207
Punkte für Reaktionen
62
Punkte
114
Glaubt ihr das das auf meiner ds110j auch läuft?
Hab zwar nur 128 mb RAM aber auch keine 40000 lieder, sondern nur 6000!

Danke für eure Antworten!
 

gigon

Benutzer
Mitglied seit
20. Mai 2011
Beiträge
51
Punkte für Reaktionen
0
Punkte
0
@DKeppi Einen Versuch ist es Wert. Der Subsonic Core (ohne Search Index) belegt bei mir ca. 40-60MB. Schau mal, wie deine RAM Auslastung idle ist.

@baack Sockso kenne ich leider nicht. Falls das Programm nur Java benötigt und die Synology Hardware genügt, sollte es aber theoretisch laufen.
 
Zuletzt bearbeitet:

DKeppi

Benutzer
Mitglied seit
01. Apr 2011
Beiträge
3.207
Punkte für Reaktionen
62
Punkte
114
@DKeppi Einen Versuch ist es Wert. Der Subsonic Core (ohne Search Index) belegt bei mir ca. 40-60MB. Schau mal, wie deine RAM Auslastung idle ist.

Mhm...ich glaube das kann ich vergessen - bin bereits bei 40 % idle, da ich pyLoad am Laufen habe.
Somit wäre ich mit subsonic bei 75 - 90 % idle - da bleibt dann nicht mehr viel für andere Dinge.
Denke ich warte bis ich mal ne stärkere DS habe...Mitte 2012 oder so ;)
Danke trotzdem!
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat