Search and Hit Enter

AirSonos auf der DiskStation mit Docker

AirSonos ist eine kleine Serverapplikation mit der ihr eure Sonos-Lautsprecher mit AirPlay bespielen könnt. Da meine DiskStation eh den ganzen Tag läuft liegt es nahe den Dienst auf dem Server laufen lassen. Mir war eine Installation von AirSonos mit node.js und Co. zu nervig, so habe ich endlich einmal Docker auf der DiskStation ausprobiert. Docker ist eine Software mit der man Anwendungen mithilfe von Betriebssystemvirtualisierung in Containern isoliert laufen lassen kann. Diese Container kann man selbst bauen oder auch einfach Docker Hub laden.

Docker ist also eine super Angelegenheit um den Funktionsumfang der Synology DiskStation nochmals zu erweitern. AirSonos ist nur ein Beispiel. Ich werde demnächst noch über weitere Möglichkeiten berichten.

AirSonos läuft im Docker aus der Synology DiskStation

Einen kleinen Kniff hat das AirSonos mit Docker auf der DiskStation dennoch. Nichts für Otto Normalverbraucher. Aber hier einfach mal mein Ablauf des Setups.

  1. Da AirSonos zwei der selben Ports (5000,5001) nutzt wie die DSM-Oberfläche, muss man diese Ports der DSM-Oberfläche vorher ändern. Dies kann man in der DSM-Systemsteuerung unter Netzwerk, Tab DSM-Einstellungen. Die Ports könnt ihr nach belieben ändern, sie dürfen nur eben nicht mit anderen Diensten kollidieren. Ich habe 8079 und 8080 verwendet.
  2. Docker-App auf der DiskStation installieren. Dafür Docker im Paketzentrum raussuchen, installieren und aktivieren.
  3. Docker im DSM öffnen.
  4. Unter Registrierung nach leachbj/airsonos suchen und Download per Doppelklick starten. Der AirSonos Container von leachbj beinhaltet schon einen Fix für iOS 9. Kurz warten bis der Download abgeschlossen ist.
  5. Normalerweise kann man den Container jetzt im DSM auch starten. Hier der Kniff mit AirSonos – Mit dem AirSonos Container geht das aktuell leider nicht. Er verlangt zum Starten ein paar Optionen die die DSM-Oberfläche nicht unterstützt. Daher müsst ihr euch jetzt per SSH als root auf einloggen und folgenden Befehl ausführen. Dieser startet den Container.
    docker run -d --restart=always --net="host" --name="airsonos" -p 5000-5050:5000-5050/tcp leachbj/airsonos
  6. Ist der Dienst ohne Fehlermeldung gestartet, könnt ihr die SSH-Session wieder beenden.
  7. Im DSM seht ihr in der Docker-Oberfläche, dass der Container läuft.
  8. Unter OS X und iOS könnt ihr die Lautsprecher jetzt als Ausgabegeräte anwählen. Sollte dies nicht funktionieren,dann müsst ihr ggf. die Ports 5000-5050 in den Firewall-Einstellungen der DiskStation  noch freigeben. Bei mir lief es direkt.
  9. Achtung der Dienst läuft auf der DiskStation nur bis ihr den Dienst beendet, dies passiert auch beim Neustart der DiskStation. Dann müsst ihr Schritt 4 wiederholen.

AirSonos in OS X auswählen

12 Comments

  1. Super Tipp! Leider geht das bei mir nicht. Sobald ich per SSH verbunden bin und den String zum Start des Containers eingebe, erhalte ich via Terminal die Fehlermeldung: Invalid repository name (—restart=always), only [a-z0-9-_.] are allowed

    1. Ich habe im Artikel mal den 1. Punkt hinzugefügt. Vielleicht liegt es daran. Außerdem hat WordPress im Terminalbefehl leider automatisch ein paar Zeichen konvertiert. Habe ich ebenfalls korrigiert. Stoppe den Container mal und starte ihn mit dem Terminalbefehl neu.

      Bei deinem Screenshot sieht man, dass die lokalen Ports und Caintainer-Ports nicht identisch sind. Das müsste aber ;) Unter dem Tab Protokoll, kannst du die Terminalausgabe des Containers sehen und damit ggf. auch Fehlermeldungen.

    1. Hi Ralf,

      da es keine Fehlermeldung gibt wird es mit der Ferndiagnose ein bisschen schwer.

      Firewall Ports freigegeben? Im Docker die Ports entsprechend zugewiesen? DiskStation und Sonos hängen wirklich im selben Netzwerk?

      Viel mehr würde mir spontan nicht einfallen.

      VG Jan

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.