Docker Container automatisch aktualisieren auf dem Synology

Mit dem DSM 6.x und dem entsprechenden NAS können Dockercontrainer gut betrieben werden. Die verschiedenen Contrainer aktuell zu halten finde ich standartmässig ziemlich mühsam. Ja klar es geht alles via DSM-GUI, jedoch war das für mich auf dauer zu mühsam.

containrrr hat einen sehr hilfreiches Image „watchtower“ auf dockerhub zur Verfügung gestellt. Mit Hilfe dieses Images kann ein Container betrieben werden, der die laufenden Container auf neuere Images überprüft.

Falls ein neueres Image vorhanden ist, lädt watchtower diese runter stoppt den Container und startet ihn wieder.

Es gibt noch diverse weitere Parameter die verwendet werden können, diese sind hier https://containrrr.github.io/watchtower/arguments/ zu finden.

Ich bin folgendermassen vorgegangen um watchtower auf meinem Syno zu betreiben

  • Image containrrr/watchtower:latest runterladen
  • Via SSH auf das syno verbinden
  • Diesen Befehl ausführen:
    sudo docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --interval 3600

Die verwendeten Argumente dienen dazu, dass die alten Images gelöscht werden und das die Überprüfung auf neue Images nur jede Stunde gemacht wird.

Let’s Encrypt Zertifikat auf einem alten Synology NAS mit DSM 5.2

Mit Let’s Encrypt lassen sich gratis vertrauenswürdige SSL-Zertifikate erstellen.

Mit dem DSM 6.0 unterstützt Synology  Let’s Encrypt  als Aussteller von SSL Zertifikaten. Wenn jedoch noch kein DSM 6.x zur Verfügung steht wird ein wenig komplizierter.

Nach einigen erfolglosen Versuchen dieses Problem zu lösen bin ich auf den Blog-Post von raorn gestossen.

Vorbedingung:

  • NAS muss von extern erreichbar sein (Port 80 & 443)
  • Zugriff via SSH auf das NAS

ACME-Client

Die Installation des Zertifikates passiert via Shell. Da die installierte BusyBox einen sehr eingeschränkten Funktionsumfang hat bietet sich die Installation vom ACME-Client an.

cd /volume1

wget https://raw.githubusercontent.com/Neilpang/acme.sh/master/acme.sh

sh ./acme.sh --install --nocron --home /volume1/.acme.sh

. /volume1/.acme.sh/acme.sh.env

Zertifikat ausstellen und installieren

acme.sh --issue \
-d domain.org \
--webroot /var/lib/letsencrypt \
--certpath /usr/syno/etc/ssl/ssl.crt/server.crt \
--keypath /usr/syno/etc/ssl/ssl.key/server.key \
--capath /usr/syno/etc/ssl/ssl.intercrt/server-ca.crt \
--reloadcmd '/usr/syno/sbin/synoservicecfg --reload httpd-sys'

Im obenstehenden Befehl muss natürlich domain.org mit derjenigen auf welche das Zertifikat ausgestellt werden soll ersetzt werden.

Das war der letzte Schritt der via Shell gemacht werden muss.

Aktualisierung des Zertifikats

Eine Besonderheit von Let’s Encrypt Zertifikaten ist, dass diese nur eine Gültigkeit von 90 Tagen haben. Das heisst die Zertifikate müssen relativ oft aktualisiert werden.

Dieser Vorgang kann auch automatisiert werden.

Das mit Hilfe eines Task vom Task Scheduler via DSM gemacht werden.

  1. Anmelden an DSM
  2. Systemsteuerung
  3. Aufgabenplaner
  4. Erstellen -> Benutzerdefiniertes Skript
    1. /volume1/.acme.sh/acme.sh --cron --home /volume1/.acme.sh
    2. Zeitplan so wählen, dieser Befehl innerhalb von 90 Tagen einmal ausgeführt wird

Quelle: http://blog.raorn.name/2017/02/lets-encrypt-certificates-on-synology.html

Champignon XXL

Heute beim Dahlien eingraben habe ich nicht schlecht gestaunt, als ein Teil diese Champignons zum Vorschein kam. Vorsichtig ausgegraben kam folgendes zum Vorschein. Recht gross und 292 Gramm schwer.

Zwei neue Erkenntnisse auf einen Schlag.

  • Es gibt so grosse Champignons
  • Champignon wachsen auch unterirdisch  (ca. 15-20 cm unter der Oberfläche).