TeamSpeak 3 Server in Debian Chroot

Aus Synology Wiki
Wechseln zu: Navigation, Suche

Installation eines Teamspeak 3 Server in Debian Chroot
Die Diskussion da zu findet ihr hier ab ca Seite 32 statt.
http://www.synology-forum.de/showthread.html?33834-DS412-und-Teamspeak-3/page32


Voraussetzungen

  • Eine DiskStation mit x86 Architektur (Liste der Prozessortypen)
  • Angepasste Debian Chroot spk vom User DI4bI0
  • Phyton von der SynoCommunty
  • Linux Basis wissen von vorteil


Installation

als erstes Installieren wir das Phytonpaket von der SynoCommunity zufinden im Paketmanager - ohne diese Paket lässt sich Debian Chroot Paket nicht Installieren. Anschliessend Installieren wir das Debian Chroot Paket von DI40bI0.
http://www52.zippyshare.com/v/79909794/file.html für x86
http://www12.zippyshare.com/v/22653393/file.html für Cedarview CPU
Diese Paket wurde für den TS3 Server etwas angepasst. Mehr dazu weiter unten "Updates" wenn diese Paket erfolgreich Installiert wurde Loggen wir uns mit Putty auf der Synology mit root ein.

mit folgendem befehl gelangen wir in das Chroot

/var/packages/debian-chroot/scripts/start-stop-status chroot 

Nun befindet ihr euch im chroot, da angekommen gebt ihr bitte diese befehle nacheinander ein:

aptitude update
aptitude upgrade
aptitude install locales
dpkg-reconfigure locales
dpkg-reconfigure tzdata

Wenn das alles abgeschlossen ist, wechselt ihr in das verzeichniss /opt
mit

"cd /opt" 

dort laden wir unseren TeamSpeak3 Server rein. Führt nun folgende Befehle aus:

wget http://dl.4players.de/ts/releases/3.0.10.2/teamspeak3-server_linux-x86-3.0.10.2.tar.gz
tar -xvzf teamspeak3-server_linux-x86-3.0.10.2.tar.gz

Jetzt könnt ihr mit "exit" aus dem chroot raus, da wir jetzt soweit alles benötigte abgeschlossen haben. Die Konsole kann auch geschlossen werden.

Als letzten schritt loggt ihr euch auf der DSM oberfläche als admin ein und öffnet das debian-chroot GUI sollte dieses noch nicht erscheinen, müsst ihr über das Packet Zentrum dieses starten.

In diesem angekommen geht ihr auf den Menüpunkt Services und klickt auf Add.

Name: TeamSpeak 3 Server
Launch script: /opt/teamspeak3-server_linux-x86/ts3server_startscript.sh
Status command: ps -p $(cat /opt/teamspeak3-server_linux-x86/ts3server.pid)

Das sollte dann soweit alles sein. Wenn ihr eure DS neustartet wird der TeamSpeak3 Server automatisch hochgefahren ohne das ihr was machen müsst! Ihr könnt das ganze auch ohne Neustart machen einfach den erstellten Service anklicken und auf start klicken.

Wenn es sich um einen neu aufgesetzten Server handelt machst du folgendes um an dem Server Adminkey zu gelangen:

1. Ins chroot einloggen mit:

/var/packages/debian-chroot/scripts/start-stop-status chroot

2. In das Verzeichniss wechseln wo der TemSpeak3 Server liegt (wenn du es genau so gemacht hast wie beschrieben! Ansonsten pfade anpassen!):

cd /opt/teamspeak3-server_linux-x86

3. Server stoppen (falls dieser noch läuft)

./ts3server_startscript.sh stop

4. Die vom Server erstellte Datenbank löschen:

rm ts3server.sqlitedb

5. Server starten (nun wird eine neue Datenbank erstellt und der key auf der Konsole angezeigt):

./ts3server_minimal_runscript.sh

6. Wenn du den key abgespeichert hast server wieder stoppen:

mit strg+c

7. chroot verlassen und konsole schließen:

exit

8. Teamspeak3 Server wieder wie gewohnt über die GUI im DSM (debian-chroot) starten.

Wenn man zuvor einen TS3 Server betrieben hat kann man dessen ts3server.sqlitedb einfach in das Verzeichniss vom neuen Server kopieren. Damit sind dann die Räume und Einstellungen wieder hergestellt. Wenn der Server vorher über den Paket Manager installiert war. (bis Version 3.0.7.2) können wir mit

cp /volume1/@appstore/ts3server/teamspeak3-server_linux-x86/ts3server.sqlitedb /volume1/@appstore/debian-chroot/var/chroottarget/opt/teamspeak3-server_linux-x86/ts3server.sqlitedb


UPDATES

Wenn man das Paket updatet, wenn bspw die Synology community eine neue Version released, dann kann man das start-stop-status script auch händisch nachbessern.
Einfach nach:

cd /var/packages/debian-chroot/scripts

Da findet man das start-stop-status script

Hier muss dann folgendes hinzugefügt werden:


# TeamSpeak3
[ ! -d ${CHROOTTARGET}/dev/shm ] && mkdir -p ${CHROOTTARGET}/dev/shm
grep -q "${CHROOTTARGET}/dev/shm " /proc/mounts || mount -t tmpfs tmpfs ${CHROOTTARGET}/dev/shm

und

# TeamSpeak3
umount ${CHROOTTARGET}/dev/shm

das sieht dann so aus.

tart_daemon ()
{
    # Mount if install is finished
    if [ -f ${INSTALL_DIR}/var/installed ]; then
        # Make sure we don't mount twice
        grep -q "${CHROOTTARGET}/proc " /proc/mounts || mount -t proc proc ${CHROOTTARGET}/proc
        grep -q "${CHROOTTARGET}/sys " /proc/mounts || mount -t sysfs sys ${CHROOTTARGET}/sys
        grep -q "${CHROOTTARGET}/dev " /proc/mounts || mount -o bind /dev ${CHROOTTARGET}/dev
        grep -q "${CHROOTTARGET}/dev/pts " /proc/mounts || mount -o bind /dev/pts ${CHROOTTARGET}/dev/pts
				
	# TeamSpeak3
	[ ! -d ${CHROOTTARGET}/dev/shm ] && mkdir -p ${CHROOTTARGET}/dev/shm
	grep -q "${CHROOTTARGET}/dev/shm " /proc/mounts || mount -t tmpfs tmpfs ${CHROOTTARGET}/dev/shm
        
        # Start all services
        ${INSTALL_DIR}/app/start.py
    fi
}

stop_daemon ()
{
    # Stop running services
    ${INSTALL_DIR}/app/stop.py

    # Unmount
    umount ${CHROOTTARGET}/dev/pts
    umount ${CHROOTTARGET}/dev
    umount ${CHROOTTARGET}/sys
    umount ${CHROOTTARGET}/proc
	
    # TeamSpeak3
    umount ${CHROOTTARGET}/dev/shm
}

Server per Cron starten und stoppen

Falls man den Server per Cron ein und aus schalten möchte sind folgende dinge zu tun.

ins chroot Verzeichniss wechslen

cd /volume1/@appstore/debian-chroot/var/chroottarget/etc

und dort die Datei "crontab" bearbeiten

nano crontab

und folgende Zeilen hinzufügen:

00 18	* * *	root	cd /opt/teamspeak3-server_linux-x86 && ./ts3server_startscript.sh start
00 22	* * *	root	cd /opt/teamspeak3-server_linux-x86 && ./ts3server_startscript.sh stop

anschließend cron einmal stoppen und wieder starten: (WICHTIG: Vorher aber ins chroot einloggen da wir ja den cron vom chroot verändern!)

/var/packages/debian-chroot/scripts/start-stop-status chroot 
/etc/init.d/cron stop
/etc/init.d/cron start

anschließend mit exit das chroot verlassen und konsole schließen.