TeamSpeak 3 Server Paket: Unterschied zwischen den Versionen

Aus
Zeile 82: Zeile 82:


DIR="/var/packages/ts3server/target/teamspeak3-server_linux-x86"
DIR="/var/packages/ts3server/target/teamspeak3-server_linux-x86"
TMP="/tmp/ts3bak/"


# Copy back the config files
# Copy back the config files
cp -pR /tmp/ts3bak/* "$DIR/"
cp -pR $TMP* "$DIR/"


# Remove the temporary dir
# Remove the temporary dir
rm -R /tmp/ts3bak/
rm -R $TMP


exit 0
exit 0

Version vom 30. September 2012, 21:18 Uhr

Ts3 logo.png

Diese Seite beschreibt wie man sich ein Paket für einen TS3 Server macht. Aus folgenden Gründen gibt es das Paket nicht schon fertig zum Download:

  • Es ist wirklich einfach mit dieser Anleitung dies selber zu erstellen.
  • Es ist 100% sicher, da man volle Kontrolle über den Inhalt hat und nur eine Datei downloaden muss, und diese ist von der offiziellen Teamspeak Seite.
  • Nachdem von den TS Entwicklern derzeit kategorisch ausgeschlossen ist, dass es ein offizielles Paket für Synology geben wird, muss das Paket bei jeder neuen Version in Privatinitiative erstellt werden. Niemand kann aber garantieren, dass er/sie dafür auch auf längere Sicht Zeit, Lust, Möglichkeit, etc. hat, bzw. dies immer zeitnah tun kann. Daher ist dies die zukunftssicherste Variante.

Vorteile eines Pakets:

  • Man benötigt für die Installation kein Telnet und kein Linuxwissen
  • Man sieht den Status im Paketmanager der Synology Adminoberfläche und kann dort den TS3 Server auch ein- und ausschalten
  • Bei einem Neustart wird der zuletzt aktive Status beibehalten (also entweder aktiviert oder deaktiviert)


Voraussetzungen

  • Eine Diskstation mit x86 Architektur (Liste der Prozessortypen)
  • Ein Archivierungsprogramm, wie z.B. 7-Zip (wird in dieser Anleitung verwendet)
  • Einen Texteditor, wie z.B. Sublime, PSPad, etc. Auf keinen Fall das Notepad von Windows!
  • Es müssen Dateien ohne Dateierweiterung erstellt werden. Dies geht unter Windows verlässlich nur, wenn die Anzeige der Dateiendungen eingeschaltet ist: Win7, WinXP, Google Suche
  • Der TS3 Client ist bereits installiert.


Einmalige Tätigkeiten

Das Paket vorbereiten

  • Ein Verzeichnis TS3_Server anlegen. Dieses sollte irgendwo sicher und permanent gespeichert sein, da man es bei jedem Update des TS3 Servers wieder benötigt.
  • Eine neue Datei INFO mit Texteditor anlegen und folgenden Inhalt hineinkopieren:
package="ts3server"
displayname="TeamSpeak 3 Server"
version="3.0.6.1"
maintainer="Dieter Wunderer"
description="TeamSpeak 3 Server for Synology x86 DS"
reloadui="yes"
arch="x86"
  • Folgende Informationen anpassen:
    • version: Die Version des Servers die man von der TeamSpeak Seite herunterlädt.
    • maintainer (optional): Hier kann man seinen eigenen Namen einsetzen. Der Parameter hat nur informativen Charakter.
  • Datei im Verzeichnis speichern (INFO in Großbuchstaben).
  • Kontrollieren, ob eine Dateiendung vorhanden ist, da manche Editoren diese automatisch anhängen. Falls ja, dann die Datei im Editor schließen und manuell die Endung entfernen. Windows fordert zur Bestätigung auf, da die Datei dann nicht mehr mit Doppelklick geöffnet werden kann. Dies mit JA bestätigen. Zum Öffnen der Datei klickt man rechts darauf, 'Öffnen mit...' und in den Programmen den Editor auswählen.
  • Folgendes Bild als PACKAGE_ICON.PNG (alles Großbuchstaben!) im Verzeichnis 'TS3_Server' speichern (Rechtsklick auf Bild und im Kontextmenü 'Grafik speichern unter...' wählen, dann Dateinamen auf Großbuchstaben ändern).
    Package icon.png
  • Unterverzeichnis scripts anlegen.
  • Nun werden nach dem gleichen Schema wie oben folgende Dateien im Verzeichnis 'scripts' angelegt. Die Dateinamen sind immer Kleinbuchstaben und auch hier hat keine der Dateien eine Endung:

preinst
Code, der vor der Installation ausgeführt wird. Der nachfolgende Code tut im Grunde nichts, dennoch sollte man diese Datei aus Gründen der Vollständigkeit und für eventuell spätere Ergänzungen anlegen. Das Weglassen der Datei wurde nicht getestet.

#!/bin/sh

exit 0

postinst
Code, der nach der Installation ausgeführt wird. Es gilt das Gleiche wie oben.

#!/bin/sh

exit 0

preupgrade
Code, der vor einem Update ausgeführt wird. Hier werden die Konfigurationsdateien gesichert, da bei dem Update alle gelöscht werden.

#!/bin/sh

DIR="/var/packages/ts3server/target/teamspeak3-server_linux-x86"
TMP="/tmp/ts3bak/"

# When upgrading, we need to backup the config files first into a temporary dir
mkdir $TMP
/bin/cp -fpR "$DIR/files/" $TMP
/bin/cp -fpR "$DIR/logs/" $TMP
/bin/cp -f "$DIR/nohup.out" $TMP
/bin/cp -f "$DIR/ts3server.sqlitedb" $TMP
/bin/cp -f "$DIR/query_ip_blacklist.txt" $TMP
/bin/cp -f "$DIR/query_ip_whitelist.txt" $TMP

exit 0

postupgrade
Code, der nach dem Update ausgeführt wird. Die Konfigurationsdaten werden wieder zurückgesichert.

#!/bin/sh

DIR="/var/packages/ts3server/target/teamspeak3-server_linux-x86"
TMP="/tmp/ts3bak/"

# Copy back the config files
cp -pR $TMP* "$DIR/"

# Remove the temporary dir
rm -R $TMP

exit 0

preuninst
Code, der vor dem Deinstallieren ausgeführt wird.

#!/bin/sh

exit 0

postuninst
Code, der nach der Deinstallation ausgeführt wird.

#!/bin/sh

exit 0

start-stop-status
Das Herzstück des Pakets. Dieses Skript wird für das Aktivieren und Deaktivieren des TS3 Servers verwendet, ebenso für die Abfrage des Status (Server läuft oder nicht) und für die Ausgabe der Protokolle. Das Paketzentrum ruft dieses Skript auf und bekommt von hier die Informationen.

#!/bin/sh
###BEGIN INIT INFO########################
#
# start-stop-status
# Starts, stops the TS3 server and
# reports status to the package manager
#
###END INIT INFO##########################

DIR="/var/packages/ts3server/target/teamspeak3-server_linux-x86"
cd "$DIR"

case $1 in
  start)
    "$DIR/ts3server_startscript.sh" start &
    exit $?
  ;;
  stop)
    "$DIR/ts3server_startscript.sh" stop &
    exit $?
  ;;
  status)
    if [ -e "$DIR/ts3server.pid" ]; then
      if ( kill -0 $(cat "$DIR/ts3server.pid") 2> /dev/null ); then
        exit 0  # Server is running
      else
        exit 1  # Server seems to have died
      fi
    else
      exit 2  # No server running (ts3server.pid is missing)
    fi
  ;;
  log)
    cat logs/*.log > /tmp/ts3.log
    echo "/tmp/ts3.log";
    exit 0
  ;;
  *)
    exit 0
  ;;
esac
  • Die Schritte bis hierher müssen nur einmal durchgeführt werden. Alle nachfolgenden Schritte zum Erstellen des Pakets bei jeder neuen Version. Daher sind diese im Kapitel TS3 Server Update ins Paket integrieren erklärt. Dort bitte nun weitermachen. Danach mit dem nachfolgenden Kapitel 'Erstinstallation' fortfahren.

Erstinstallation

Voraussetzung ist, dass das .SPK Paket fertiggestellt ist (siehe Kapitel Das Paket vorbereiten und TS3 Server Update ins Paket integrieren).

  1. Im Paket-Zentrum der Synology DS links oben auf Installieren/Aktualisieren klicken.
  2. Die erstellte .SPK öffnen, dann Weiter.
  3. Im Informationsbildschirm die Option 'Paket nach der Installation starten' aktivieren. Weiter.
  4. Es sollte die Meldung über die erfolgreiche Installation erscheinen.
  5. Im Paket-Zentrum ist nun das Logo und der Status ersichtlich. Läuft der Server nicht, dann manuell starten.
  6. Den TS3 Client starten und zur Synology DS verbinden. Es erscheint ein Dialog zur Eingabe des Berechtigungsschlüssels. Damit macht man sich zum Server Admin und ist Voraussetzung für die Konfiguration.
  7. Den Berechtigungsschlüssel (Token) holen:
    1. Im Paket-Zentrum beim TS3 Server auf Mehr klicken, und dann den Reiter Protokoll. Hier sollte man nun im Text folgende Stelle finden, die in etwas so aussieht:
      TS3 Server Token.png
    2. Den Code nach dem Gleichheitszeichen muss man kopieren, wobei das leider etwas schwierig ist, weil man den Text nicht einfach markieren kann. Falls folgende Schritte nicht funktionieren, dann bleibt nur das manuelle Abschreiben über (muss man nur einmal machen).
    3. Im Browser auf Suchen gehen und nach 'token=' suchen. Der gesuchte Text ist nun ausgewählt. Nun mit [Shift/Umsch]+[Cursor rechts] die Markierung erweitern, bis der ganze Schlüssel markiert ist. [Ctrl/Strg]+[C] zum Kopieren drücken.
    4. In einem Texteditor den Text einfügen und nun nur den Teil nach dem Gleichheitszeichen markieren und erneut kopieren.
    5. Im TS3 Client in das Dialogfeld für den Berechtigungsschlüssel den Code einfügen ([Strg/Ctrl]+[V])... oder eben manuell eingeben.
  8. Dokumentation zur Konfiguration des TeamSpeak 3 Servers findet man im unteren Teil der TeamSpeak FAQ.
  9. Siehe auch TeamSpeak Addons.


Paket updaten

Folgende Schritte müssen bei jeder neuen Version des TS3 Servers gemacht werden. Voraussetzung ist, dass die einmaligen Schritte Kapitel gemacht wurden (d.h. die Dateien 'INFO', 'PACKAGE_ICON.PNG' und das Verzeichnis 'scripts' müssen vorhanden sein).

TS3 Server Update ins Paket integrieren

  1. Falls bereits vorhanden, die Datei package.tgz im Verzeichnis 'TS3_Server' löschen (trifft nicht zu, falls das Paket zum ersten Mal erstellt wird).
  2. Paket von der TeamSpeak Downloadseite laden: Es muss das Linux Server x86 Paket sein! Das Paket heißt z.B. teamspeak3-server_linux-x86-3.0.6.1.tar.gz.
  3. Datei im Verzeichnis 'TS3_Server' speichern.
  4. Datei mit einem Archivierprogramm öffnen. Man findet hier nur eine einzige Datei, z.B. teamspeak3-server_linux-x86-3.0.6.1.tar. Diese Datei auf package.tar umbenennen.
  5. Archivierprogramm beenden. Die Datei auf package.tgz umbenennen.
  6. Zur Klarstellung:
    • Man sollte danach eine Datei im 'TS3_Server' Vezeichnis haben, die 'package.tgz' heißt. Öffnet man diese mit einem Archivierungsprogramm, dann findet sich darin eine Datei, die 'package.tar' heißt.
    • Das 'TS3_Server' Verzeichnis sollte nun so aussehen:
      TS3 Server Dir.png
    • Das 'scripts' Verzeichnis sollte so aussehen:
      TS3 Server Scripts Dir.png
  7. Nun alle Dateien im 'TS3_Server' Verzeichnis markieren und zu einem Archiv hinzufügen (Rechtsklick bei 7-Zip und im Kontextmenü auswählen. Als Format muss TAR gewählt werden. Paket als TS3 Server 3.0.6.1.spk speichern (Versionsnummer anpassen).
  8. Falls das Archivierungsprogramm die Dateiendung automatisch auf TAR ergänzt, die Datei nachträchlich manuell umbennen. Das Paket muss unbedingt die Dateindung .SPK haben!

Paket im Paket-Zentrum updaten

  1. Das .SPK Paket installieren (wie bei Erstinstallation über den Knopf 'Installieren/Aktualisieren').
  2. Sollte der Server danach nicht laufen manuell starten.


Erreichbarkeit von Außen

Folgende Ports müssen per NAT an die Synology DS weitergeleitet werden: Server Ports.

Als minimale Anforderung reichen:

  • Sprache: 9987 UDP
  • Dateimanager (evtl. auch nicht notwendig): 30033 TCP


Persönliche Anmerkungen

Ich kenne mich bei Linux eigentlich gar nicht aus und auch nicht wirklich mit Synology Paketen. Nachdem ich schon lange auf ein Paket warte und keines kam, habe ich mir diese Lösung nun in einem Gewaltakt erarbeitet. Es ist daher möglich, dass diese Lösung nicht in allen Punkten optimal ist oder Fehler beinhaltet (wobei bei mir bislang keine erkennbar waren). Ich hoffe auf entsprechende Ergänzungen bzw. Korrekturen von Leuten, die sich in diesen Dingen besser auskennen.

Wesentlich Anteil an der Lösung haben die Arbeiten von User Merty, der im englischsprachigen Synolog Wiki eine Paketerstellungsanleitung erstellt hat, und einige eigene Pakete anbietet.