Synology DSM7

SSH:
Windows cmd
ssh admin@ip-addr password

Admin-Warnung auschalten:
https://crieder.com/synology-admin-warnung-ausschalten/

Paketquelle:
packages.synocommunity.com
synocli Filetools enthält nano

Passwort ändern:
sudo synouser –setpw admin newpass

Try with „synouser –setpw admin “ root@synology:~# synouser Copyright (c) 2003-2012 Synology Inc. All rights reserved. Usage: synouser (Version 3810) –help –rebuild {all|(domain Force{0|1})|(ldap Force{0|1})} –enum {local|domain|ldap|all|domain_used} –enumpre {local|domain|all|domain_used} prefix Caseless{0|1} –enumsub {local|domain|all|domain_used} substr Caseless{0|1} –get username –getuid UID –add [username pwd „full name“ expired{0|1} mail privilege] –modify username „full name“ expired{0|1} mail –rename old_username new_username –setpw username newpasswd –del username1 username2 … –login username pwd –dbopen2 username –filesetpw filename –create_homes {domain|ldap} Note: if you are using built-in telnet/ssh services, you don’t need to change root password, as Synology is using modified binaries that check admin’s password field when logging as root.

Kennwortrichtlinien (greifen scheinbar nicht bei ssh-Passwortänderung)
Systemsteuerung – Benutzer/Gruppe – Erweitert – Regeln anwenden, Namen ausschließen

Passwort vergessen:
https://kb.synology.com/de-de/DSM/tutorial/How_do_I_log_in_if_I_forgot_the_admin_password

  1. Suchen Sie die RESET-Taste auf Ihrem Synology-Gerät. Die Position der RESET-Taste auf Ihrem Gerät können Sie der Hardware-Installationsanleitung entnehmen. 1
  2. Halten Sie die RESET-Taste mit einer Büroklammer leicht gedrückt, bis Sie einen Signalton hören. Lassen Sie die Taste dann sofort los. 2 3 4
  3. Gerät und Kennwort sind jetzt zurückgesetzt.
  4. Geben Sie find.synology.com in der Adresszeile Ihres Webbrowsers ein und suchen Sie Ihr Synology-Gerät auf der Web Assistant- Seite oder suchen Sie Ihr Synology-Gerät über das Synology Assistant- Desktop-Dienstprogramm. 1
  5. Doppelklicken Sie auf Ihr Synology-Gerät. Geben Sie den Standard-Benutzernamen admin ein und lassen Sie das Kennwortfeld leer.
  6. Klicken Sie auf Anmelden. Befolgen Sie diese Schritte, um das Zurücksetzen Ihres Kennworts für Ihr Administratorkonto abzuschließen.
    • Für DSM 6.2.3 und früher:
      1. Erstellen Sie ein sicheres Kennwort und melden Sie sich dann mit dem Benutzernamen admin und dem eben erstellten Kennwort bei DSM an.
      2. Gehen Sie zu Systemsteuerung > Benutzer > Registerkarte Benutzer und doppelklicken Sie auf das Administratorkonto, das Sie verwenden möchten. Unter der Registerkarte Info können Sie Ihr Kennwort zurücksetzen und auf OK klicken.
      3. Deaktivieren Sie das Admin- Konto, indem Sie sich zuerst mit Ihrem Administrator-Konto anmelden und dann zu Systemsteuerung > Benutzer > Registerkarte Benutzer gehen. Doppelklicken Sie auf admin und aktivieren Sie das Kontrollkästchen Dieses Konto deaktivieren. Klicken Sie auf OK (Detaillierte Anweisungen finden Sie in diesem Artikel).
    • Für DSM 6.2.4 und höher:
      1. Setzen Sie das Kennwort für Ihr Konto zurück und klicken Sie auf Absenden.
        • Wenn nur ein Administratorkonto vorhanden ist, trägt das System automatisch den Namen admin in das Feld Benutzername ein.
        • Wenn mehrere Administratorkonten vorhanden sind, wählen Sie eines aus dem Dropdown-Menü aus, um das Kennwort zu ändern.
      2. Klicken Sie auf Jetzt anmelden und melden Sie sich mit dem eben erstellten Kennwort bei DSM an (detaillierte Anweisungen finden Sie in diesem Artikel).

Wenn die oben beschriebene Methode Ihr Administrator-Kennwort nicht zurücksetzen konnte, kann dies zwei mögliche Gründe haben:

  1. Ihr Browser hat Ihr altes Kennwort gespeichert. Versuchen Sie es mit einem anderen Browser oder öffnen Sie ein InPrivate-Fenster (für Edge), ein Inkognito-Fenster (für Chrome) oder ein Privates Fenster (für Firefox und Safari), um sich mit dem neuen Kennwort anzumelden.
  2. Die folgenden Optionen waren zuvor aktiviert. In diesem Fall müssen Sie die Schritte unter „Modus 2: Synology NAS zurücksetzen und DSM“ in diesem Artikel (für DSM 6.2.3 und früher) bzw. in diesem Artikel (für DSM 6.2.4 und höher) befolgen ) .
    • Für DSM 6.2.3 und früher: Die Option Aktuelles Admin-Kennwort beibehalten ist unter Systemsteuerung > Aktualisieren und Wiederherstellen > Zurücksetzen aktiviert.
    • Für DSM 6.2.4 und höher: Die Option Admin-Kennwort beibehalten ist unter Systemsteuerung > Aktualisieren und Wiederherstellen > System zurücksetzen aktiviert.

Wenn Sie Ihr Administratorkennwort immer noch nicht zurücksetzen können, wenden Sie sich für weitere Unterstützung bitte an den technischen Support von Synology.

Anmerkungen:

  1. Die Hardware-Installationsanleitung und das Desktop-Dienstprogramm Synology Assistant finden Sie beide im Synology Download-Zentrum.
  2. Wenn Ihr Synology NAS keinen Signalton abgibt, wenn Sie die RESET-Taste gedrückt halten, kann dies an einem Hardwarefehler liegen. Wenden Sie sich für einen Rücksendungsservice (RMA) bitte an Ihren örtlichen Händler, wenn sich Ihr Synology NAS noch in der Garantiezeit befindet.
  3. Nach dem Zurücksetzen Ihres Synology NAS kann sich die LAN IP -Adresse ändern. Siehe Schritt 4 oben, um die IP -Adresse zu bestätigen.
  4. SieheAnmerkung 1 in diesem Artikel für Einstellungen, die durch diese Zurücksetzung auf Modus 1 geändert werden.
  5. Dadurch wird ein neues DSM auf Ihrem Synology NAS installiert. Alle vorhandenen Systemkonfigurationen und Paketeinstellungen werden gelöscht. Die Daten in Ihren freigegebenen Ordnern bleiben jedoch erhalten.

Convert pfx file to pem file

Convert pfx file to pem file

Conversion to a combined PEM file

To convert a PFX file to a PEM file that contains both the certificate and private key, the following command needs to be used:
# openssl pkcs12 -in filename.pfx -out cert.pem -nodes

Conversion to separate PEM files

We can extract the private key form a PFX to a PEM file with this command:
# openssl pkcs12 -in filename.pfx -nocerts -out key.pem

Exporting the certificate only:
# openssl pkcs12 -in filename.pfx -clcerts -nokeys -out cert.pem

Removing the password from the extracted private key:
# openssl rsa -in key.pem -out server.key

RTSP Stream als MJPEG in Netz streamen

http://192.168.x.xx:5000/webapi/entry.cgi?api=SYNO.SurveillanceStation.Stream.VideoStreaming&version=1&method=Stream&format=mjpeg&cameraId=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%22

Dazu geht man zunächst in die Einstellungen für die RTSP-Kamera und stellt die Kamera kurzeitig auf „MJPEG“ um. Der Stream wird dann in der Regel unterbrochen, aber das ist erst mal nicht weiter tragisch, da man am Ende wieder alles auf „H.264“ zurückstellt.

— Surveilance Station Camer Einstellungen

Nun klickt man mit der rechten Maustaste auf die betreffende Kamera und dann auf „Stream-Pfad freigeben“. Dann werden einem die Daten der Kamera, die man für die nachfolgenden Befehle benötigt, angezeigt. Neben der IP-Adresse der DiskStation (1) findet man hinter „cameraID=“ die wesentlichen ID-Daten der Kamera (2).

Mit folgendem Shellskript (Achtung: es dürfen keine CR am Zeilenende enthalten sein) kann man sich dann einen Snapshot holen.


#!/bin/bash

# +++++ Pfad und Name eines zu speichernden Bildes +++++
pictPath='/tmp/Bildname.jpg'

# +++++ Zugriffsdaten der Synology DiskStation +++++
ipDiskStation='xxx.xxx.xxx.xxx:5000' # IP:PORT der DiskStation
account='admin' # Admin-Name auf der DiskStation
password='xxxxxxxxxx' # Admin-Passwort
cameraId='xx&StmKey=xxxxxxxxxxxxxxxxxxxxxxxxx'

# +++++ Snaphshot holen +++++
wget -q --keep-session-cookies --save-cookies cookies.txt -O- "http://"$ipDiskStation"/webapi/entry.cgi?api=SYNO.API.Auth&version=3&method=login&account="$account"&passwd="$password

wget -q --load-cookies cookies.txt -O $pictPath "http://"$ipDiskStation"/webapi/entry.cgi?api=SYNO.SurveillanceStation.Camera&method=GetSnapshot&version=1&cameraId="$cameraId

exit 0

Siehe auch https://www.synology-forum.de/threads/rtsp-stream-als-mjpeg-in-netz-streamen.109971/

Synology Admin Warnung ausschalten

/usr/syno/synoman/webman/modules/DisableAdminNotification/config

„autoLaunch“ umstellen von true auf false

su nano /usr/syno/synoman/webman/modules/DisableAdminNotification/config

Log in via SSH. If you don’t know how to do that,
Enter the following command to open a text editor for a configuration file that we are about to change:

sudo vi /usr/syno/synoman/webman/modules/DisableAdminNotification/config

This opens a CLI editor after you’ve entered your root password. Press I. After that, use your right arrow key to navigate to "autoLaunch":true – now, replace the true with a false. This stops DSM from loading the brute-force warning.

To save your changes, press Esc and enter :wq – press Enter to close the text editor. The warning should now be hidden.

http://web-console.org

MODS Web Console (benötigt PHP7.3)

https://www.beatificabytes.be/sspks/

MACVLAN über Portainer einrichten

MACVLAN über Portainer einrichten

In diesem Tutorial werden wir mittels der Portainer Weboberfläche manuell ein MACVLAN erstellen dass wir dann später beim Starten eines Containers verwenden können. Wie ihr Portainer für euren Docker Host einrichtet habe ich bereits in diesem Tutorial beschrieben:

Ich empfehle die Verwendung von MACVLAN grundsätzlich nur fortgeschrittenen Benutzern, denn für die Umsetzung solltet Ihr in jedem Fall mit den Basics zum Thema „IP-Netzwerke“ vertaut sein und euer eigenes Heimnetzwerk im Griff haben. Wenn euch Begriffe wie „DHCP“, „Gateway“ oder „Subnet“ nichts sagen, holt euch bitte entsprechende Unterstützung. Außerdem ist es hilfreich sich vorab einmal mit dem Networking unter Docker auseinander zu setzen. Infos dazu findet ihr z.B. hier:

 

docs.docker.com/network

 

Vorbereitungen für MACVLAN

Und schon geht es los. Für die Umsetzung des Tutorials benötigt ihr also Kenntnisse über euer eigenes Netzwerk, den Zugriff auf die Portainer Oberfläche und einen Konsolenzugriff (z.B. über SSH) auf euren Docker Host.
In meinem Beispiel arbeite ich auf einer Synology Disk Station und verwende als Testnetz ein 192.168.0.0/24-Netz. Das Gateway liegt klassich auf der .1 und es gibt keinen DHCP-Bereich. Mein Container soll später die IP-Adresse 192.168.0.100 bekommen.

Und schon geht es los. Das Erstellen des MACVLAN-Netzwerkes umfasst insgesamt zwei Schritte. Im ersten Schritt erstelle wir eine „Configuration“ mit den gewünschten Netzwerkinformationen. Im zweiten Schritt erstellen wir dann mit Hilfe der „Configuration“ die sogenannte „Creation“ die wir dann später auch mit dem ioBroker-Container verbinden.

Hinweis

Bis einschließlich der Docker-Paketversion 17 war es durch einen Bug auf der DS nicht möglich nach der Erstellung der „Configuration“ eine „Creation“ zu erstellen. Dafür konnte man aber die „Configuration“ direkt mit dem ioBroker-Container verbinden und hatte ein funktionierendes MACVLAN. Eine Erklärung dafür habe ich nicht gefunden, es lief so aber bei mir monatelang problemlos. Trotzdem würde ich empfehlen bei Installationen auf einer DS das Docker-Paket vorher auf die aktuellste Version zu bringen.

Öffnen wir also erst einmal die Portainer-Weboberfläche, melden uns an und wählen unseren Endpoint (Host). Anschließend starten wir die Erstellung der „Configuration“ mit einem Klick auf den Button „Add network“ unter „Networks“.

Im folgenden Dialog sind einige Felder zu füllen. Beginnen wir mit dem Namen. Ich werde dem MACVLAN nur eine einzelne IP-Adresse zuweisen. Daher bekommt mein MACVLAN auch einen eindeutigen Namen. Weil es sich um die „Configuration“ handelt, hänge ich noch ein „conf“ dran: „iob_public_conf“. Als Driver wählen wir natürlich „MACVLAN“.

Weiter geht es zum nächsten Feld: Parent network card. Hier müssen wir angeben auf welche physikalische Netzwerkkarte wir unser MACVLAN binden wollen. An dieser Stelle liegt dann auch die Beurteilung „für fortgeschrittenen Benutzer“ begründet. Denn mir ist bisher kein Weg bekannt diese Information der Weboberfläche der DS zu entlocken. Da hilft nur Kommandozeile raus und „ifconfig“ rein.

Auf meiner virtuellen Test-DS liegt die lokale IP-Adresse (192.168.0.32) auf dem Interface eth0. Ich verwende also dieses.

Weiter geht es mit dem Abschnitt „Network configuration“ Hier fülle ich die Informationen meinem Netzwerk entsprechend aus. Für „IP range“ verwende ich die gewünschte IP-Adresse mit einer Präfixlänge von „/32“. Dieses Netz enthält dann schließlich genau eine IP-Adresse.

Hinweis

Es ist natürlich auch möglich dem MACVLAN über die Präfixlänge einen ganzen Adressbereich zur Verfügung zu stellen, sodass man mehrere Container im MACVLAN mit Adressen versorgen kann.

So hat man z.B. bei 192.168.0.80/29 die Adressen .81 bis .86 für Container zur Verfügung.

Allerdings sollte man bei jedem Container genau überlegen ob dieser wirklich eine eigene IP-Adresse benötigt. In den meisten Fällen (Webster, Datenbanken usw.) ergibt das nämlich keinen Sinn.

Bei der Wahl des Netzes unterstützen kann euch dabei der z.B. Netzwerkrechner von Heise.

Achtung: Um IP-Konflikte in eurem Netzwerk zu vermeiden, stellt bitte sicher dass der gewählte Bereich NICHT von einem DHCP Server verwaltet wird/ vergeben werden kann!

Über den Button „Create the network“ schließe ich die Erstellung der „Configuration“ ab.

Die Erstellte „Configuration“ sollte nun in der Liste der Netzwerke auftauchen.

Fehlt noch die „Creation“. Um diese zu erstellen klicken wir erneut auf den Button „Add network“ und geben einen Netzwerknamen an. Dieses Mal verwenden wir nur „iob_public“ und wählen als „Driver“ erneut „MACVLAN“ aus. Anschließend klicken wir auf den Button „Creation“ und wählen im Dropdownmenü „Configuration“ unsere vorab bereits erstellte „Configuration“ aus.

 

Über den Button „Create the network“ schließen wir nun die Erstellung der „Creation“ ab. Das neue Netzwerk erscheint in der Liste und ist bereit zur Verwendung.

Umsetzung mit docker-compose aka „Portainer Stacks“…

Natürlich lässt sich die Erstellung des MACVLAN auch in docker-compose abbilden. In Portainer nennt sich das ganze „Stacks“. Wer noch nichts davon gehört hat kann erst einmal hier weiter lesen. Für alle Anderen habe ich hier das oben erläuterte Beispiel einmal als Definition für das Stack File. Der Name des Netzwerks lautet im Beispiel dabei „public“.

networks: public: driver: macvlan driver_opts: parent: eth0 ipam: config: – subnet: 192.168.0.0/24 gateway: 192.168.0.1 ip_range: 192.168.0.100/32 aux_addresses: net-address: 192.168.0.100

In dem entsprechenden Container wird das Ganze dann wie folgt, inklusive der IP-Adresse für den Container, referenziert.

networks: public: ipv4_address: 192.168.0.100

Das solle es zu diesem Thema erst einmal gewesen sein. Bei Fragen und Anregungen nutzt gerne die Kommentare oder kontaktiert mich über einen der öffentlichen Kanäle wie z.B. über das ioBroker Forum oder den ioBroker Discord Channel.

Grundsätzlich biete ich keinen persönlichen Support per Messenger bzw. E-Mail an. Fragen sollten meiner Meinung nach immer öffentlich gestellt und beantwortet werden, damit auch andere User mit der selben Frage Zugriff auf die Antworten bekommen. 🙂 Falls ihr mal irgendwo keine Antwort bekommt, nutzt gerne das Kontaktformular und macht mich auf euren Kommentar, Post, Beitrag oder Thread aufmerksam! Danke.

 

Content retrieved from: https://smarthome.buanet.de/2020/09/macvlan-ueber-portainer-einrichten/.

ioBroker unter Docker auf der Synology DiskStation

ioBroker unter Docker auf der Synology DiskStation (ab v3)

Nachdem sich in letzter Zeit einiges zum Thema ioBroker und Docker getan hat und das alte Tutorial mittlerweile nicht mehr vollständig auf die aktuelle Docker Version gepasst hat, habe ich mich entschieden eine komplette Neuauflage zu machen. Damit wird praktisch die alte Version, welche ihr im Archiv weiterhin einsehen könnt, eins zu eins abgelöst.

Weiterhin habe ich versucht das Ganze einigermaßen übersichtlich zu gestalten und einige Teile in kleine „Mini-Tutorials“ ausgelagert. Hinweise findet ihr an den entsprechenden Stellen.

Ansonsten wünsche ich euch viel Erfolg beim Einrichten des ioBroker-Containers unter Docker und freue mich auf eure Kommentare.

Wichtige Neuerungen und Hinweise

Bevor es mit dem neuen Tutorial los geht ein kurzer Überblick über die größten Neuerungen.

Portainer als Ersatz der Docker Weboberfläche im DSM

Während ich im alten Tutorial noch die Weboberfläche innerhalb des Disk Station Managers (DSM) gelobt und verwendet habe, so fehlen mir dort mittlerweile jedoch wichtige Möglichkeiten zur Administration. So ist es mir z.B. bisher nicht gelungen dem ioBroker-Container mit Hilfe von MACVLAN über die DSM-Oberfläche eine eigene IP-Adresse zu verpassen. Mit Portainer hingegen ist das innerhalb von zwei Minuten erledigt. Weiterhin bietet Portainer eine Reihe von komfortablen Features, wie z.B. die Verwendung von Stacks und Templates, die die Erstellung von Containern in Zukunft noch einfacher machen werden. Dazu aber zu gegebener Zeit mehr in einem anderen Tutorial. Wie ihr Portainer einrichtet habe ich in euch beteits in einem separaten Tutorial gezeigt:

Portainer auf der Synology DiskStation

Änderungen im ioBroker Setup

Durch Änderungen im eigentlichen ioBroker-Setup und in der Art und Weise wie ioBroker später läuft, waren auch im Image umfangreiche Anpassungen notwendig. Durch z.B. die Verwendung eines separaten ioBroker Users ergeben sich ganz neue Anforderungen an die Rechteverwaltung innerhalb und auch außerhalb des Containers. Zu diesem Zweck wurde und wird das Startup-Script innerhalb des Containers ständig weiterentwickelt.

Mount des ioBroker-Verzeichnises

Auch hier gibt es Neuerungen. So ist es nun z.B. möglich, nein, wird es nun dringend empfohlen, beim ersten Start des Containers ein leeres oder ein mit einer bestehenden Installation gefülltes Verzeichnis in /opt/iobroker zu mounten. Den Rest erledigt dann das überarbeitete Startup-Script. Die mühsame Prozedur mit dem hin und her kopieren wird dadurch deutlich vereinfacht bzw. entfällt bei einer Neuinstallation komplett!

Neue Umgebungsvariablen zur Konfiguration des Containers

Zu den bekannten Umgebungsvariablen für z.B. die Zeitzone kommen weitere Variablen hinzu die es ermöglichen Features zu aktivieren (z.B. dem AVAHI-Daemon) oder zusätzlich benötigte Linux-Pakete zu installieren. Aktuelle Informationen zu den möglichen Variablen finden sich immer im Readme auf Github.

Voraussetzungen und Vorbereitungen

Im Gegensatz zum alten Tutorial starten wir dieses Mal nicht sofort durch. Bevor wir den eigentlichen ioBroker-Container mit wenigen Klicks erstellen können, sind ein paar Vorbereitungen zu treffen.

Systemvoraussetzungen

Wie der Titel es schon vermuten lässt, habe ich dieses Tutorial ursprünglich für die Installation von ioBroker unter Docker auf einer Synology Disk Station geschrieben. Es wäre also nicht verkehrt wenn ihr eine konfigurierte Disk Station mit installiertem Docker-Paket euer eigen nennen würdet. Allerdings ist das diesmal kein Muss! Ich teste zum Beispiel meine Builds zusätzlich zur DS auch immer auf einem ganz normalen Debian PC mit installiertem Docker CE. Trotzdem beziehe ich mich in diesem Tutorial grundsätzlich in erste Linie auf die Installation auf der DS, werde aber an einigen Stellen entsprechende Anmerkungen machen wenn Schritte auf anderen Systemen deutlich abweichen. 🙂

Eine weitere Voraussetzung für das Gelingen dieses Tutorials ist die Installation von Portainer als alternative Weboberfläche zur Administration von Docker. Dazu habe ich im Vorfeld bereits ein Tutorial veröffentlicht welches beschreibt wie man Portainer auf die DS bringt. Keine Angst, bei Portainer handelt es sich lediglich um einen weiteren Docker-Container. Es ist also kein komplizierter Eingriff auf der DS nötig. Benutzer die keine DS verwenden, müssen an dieser Stelle höchstwahrscheinlich die Kommandozeile bemühen. Anleitungen zum Aufsetzen von Portainer auf einem „normalen“ Docker-PC gibt es zu genüge im Netz.

Verzeichnisstruktur

Docker-Container sind per Definition zu 100% austauschbare Hüllen für die darin laufende Software. Dies bedeutet wir müssen uns Gedanken darüber machen welche (Konfigurations-)Daten wir außerhalb des Containers speichern sollten um nicht bei jedem Update des Containers neu anfangen zu müssen.

Im Fall von ioBroker ist das relativ einfach. Das Verzeichnis /opt/iobroker beinhaltet sämtliche Konfigurationsdateien von ioBroker und seinen Adaptern. Dieses Verzeichnis sollten wir also auf jeden Fall außerhalb des Docker-Containers lagern. Wie euch aus meinem Portainer Tutorial bereits bekannt sein sollte, habe ich für die Container-Daten auf der DS eine einfache Ordnerstruktur angelegt. Diese befindet sich bei mir auf „volume1“ im Ordner „docker“. Hier lege ich über die FileStation für jeden Container einen Order nach folgendem Schema an /volume1/docker/[containername]_[bezeichnung]. Bei Portainer war es …/portainer_data. Auch für ioBroker ist das nicht anders. Mein Verzeichnis heißt hier …/iobroker_data (Im alten Tutorial hieß das Verzeichnis übrigens noch „iobroker_mount“).

Netzwerk

Immer wieder ein spannendes Thema unter Docker weil leider nicht ganz trivial. Prinzipiell sind zu diesem Thema drei Varianten relevant: Bridge, Host oder MACVLAN.

Welche Variante ihr verwendet bleibt euch überlassen. Die einfachste ist sicher der Host-Modus. Ich persönlich bevorzuge die MACVLAN-Variante, wenngleich ich diese nur den fortgeschrittenen Benutzern empfehlen würde. Hierbei sind nämlich gute Kenntnisse des eigenen Heimnetzwerks sowie der Netzwerkkonfiguration der DiskStation (Stichwort: Network-Device-Name) unerlässlich. Schaut euch am Besten mal mein Tutorial dazu an und entscheidet ob ihr das ggf. auch so hin bekommt:

MACVLAN über Portainer einrichten

Mit dem Bridged Mode kann man als Einsteiger nicht viel falsch (kaputt) machen. Als Nachteil ist hier aber zu sehen, dass jeder benötigte Port separat als Weiterleitung im Container eingetragen werden muss. Außerdem gilt für den Bridged Mode der Hinweis, dass Adapter die per Multicast arbeiten hier nicht funktionieren werden.

Außerdem gibt es die Möglichkeit den ioBroker im selben Netz wie den Host zu betreiben. Das ist auf aktuellen Linux-Hosts auch kein Problem. Die Synology Disk Stations arbeiten im DSM allerdings mit einem veralteten Linux Kernel in dem es einen bekannten Bug gibt. Der Bug verhindert die Ausführung von sudo im Container. Für den Normalbetrieb geht das ist Ordnung (Habe ich im Image gefixt) sobald es aber z.B. um das Update des js-controllers geht gibt es Probleme. Aus diesem Grund empfehle ich auf den Host Modus beim Einsatz einer Synology DiskStation zu verzichten.

Übernahme von ioBroker Daten aus anderem System

Natürlich ist die Datenübernahme aus einem bereits laufenden ioBroker ein wichtiges Thema. Meine Empfehlung: Backup und Restore.

Der ioBroker bringt von Haus aus eine Backup-Funktion mit die auch über einen Adapter getriggert werden kann. Ich habe zu diesem Thema ebenfall ein kleines Tutorial verfasst. Die Datenübernahme ist also praktisch ein simpler Restore. Mehr Infos dazu hier:

ioBroker Docker Container – Backup & Restore

Damit sollten dann alle Voraussetzungen erfüllt sein und wir können den ioBroker Container erstellen.

Neuen Docker Container erstellen

OK, nachdem wir alle Voraussetzungen geklärt haben, sollte das Erstellen des Containers keine große Hürde mehr darstellen. Los geht es natürlich in der Portainer-Weboberfläche unter dem Punkt: „Containers“.

Über den Button „Add container“ gelangen wir in ein Formular. Auch hier sind wieder einige Felder zu füllen.

Als Namen vergeben wir zunächst einen aussagekräftigen Namen. Ich schlage „iobroker“ vor (bei mir im Testumfeld „iobrokertest“).

Das Image beziehen wir aus der Registry „DockerHub“ und es heißt „buanet/iobroker:latest“. Auch wenn wir es bisher nicht geladen haben, können wir es hier hinterlegen. Beim Erstellen des Containers wird das Image automatisch heruntergeladen. Achtung: Das könnte etwas Zeit in Anspruch nehmen! Unter „Images“ könnte man das Image vorab herunterladen (Stichwort: pull).

Für den Fall dass ihr den ioBroker im Bridged Modus laufen lassen wollt, müssen im Bereich „Ports configuration“ die Port-Weiterleitungen für die von eurem ioBroker und seinen Adaptern verwendeten Ports eingerichtet werden. Für den Admin-Adapter ist das z.B. der Port 8081.

In meinem Fall werde ich die MACVLAN-Konfiguration verwenden, welche ich bereits etwas weiter oben angesprochen habe. Daher brauche ich an dieser Stelle keine Ports mappen (weiterleiten).

Den Bereich „Access control“ können wir einfach ignorieren oder falls gewünscht natürlich auch entsprechend konfigurieren.

Scrollen wir nun nach unten finden wir einen Button „Deploy the container“. Diesen drücken wir aber noch nicht! Zuvor konfigurieren wir noch ein paar „Advanced container settings“.

Erster wichtiger Punkt hier: Volumes. Hier mounten wir unser lokales Verzeichnis in den ioBroker, damit unsere Daten lokal auf der DS bleiben und nicht aus Versehen mit dem Container gelöscht werden können. Dazu hatten wir ja bereits eine Ordnerstruktur angelegt, welche wir jetzt wie folgt einbinden.

Durch Klick auf „map additional volume“ erscheinen zwei neue Felder. Im ersten Feld tragen wir den Pfad innerhalb des Containers /opt/iobroker ein und wählen anschließend den Button „Bind“. Im zweiten Feld tragen wir den lokalen Pfad auf der DS ein. Dieser sollte natürlich „Writeable“ (beschreibbar) sein.

Dann ist das Netzwerk an der Reihe. Hier wählen wir unser Netzwerk aus, in das wir unseren ioBroker einbinden wollen. In meinem Fall ist dies das vorab angelegte MACVLAN Netzwerk „iob_public“. Als Hostname schlage ich wieder „iobroker“ vor (bei mir entsprechend „iobrokertest“). Weitere Einstellungen müssen hier nicht getätigt werden.

Unter „Env“ können wir nun optional Einfluss auf die Umgebungsvariablen zur Containerkonfiguration nehmen. In meinem Fall habe ich zu Demonstrationszwecken mal die beiden variablen „AVAHI=false“ und „PACKAGES=nano“ gesetzt. Weitere Informationen zu verwendbaren Variablen gibt es hier in der Readme auf Github.

Das sollten dann auch die wesentlichen Einstellungen gewesen sein. Natürlich könnt ihr nach Bedarf auch noch weitere Optionen konfigurieren. Für unseren Fall sollte das hier aber reichen und wir können endlich den Button „Deploy the container“ betätigen.

Container prüfen

Je nachdem ob Portainer nun das Image noch laden muss, kann der Prozess eine Weile dauern. Im Anschluss sollte der neu erstellte Container in der Containerliste auftauchen.

Mit einem Klick auf den Containernamen in der Liste könnt ihr euch weitere Informationen zum Container anzeigen lassen. Wenn es unter „Stats“ so

und unter Logs in etwa so

aussieht, dann hat wahrscheinlich alles geklappt und ihr könnt den ioBroker-Admin über den bekannten Weg „http://[name_des_hosts]:8081“ oder „http://[IP-Adresse]:8081“ aufrufen.

Hinweis

Der erste Start des Containers kann unter Umständen auch mal Minuten brauchen. Ursache ist das Startupscript das diverse Aufgaben ausführt. Sollte also euer ioBroker-Container laut Portainer laufen, ihr aber die Weboberfläche nicht erreichen, schaut bitte in die Logs des Containers (siehe etwas weiter oben), hier könnt ihr sehen wie weit das Startupscript ist und ob ioBroker schon gestartet wurde.

Updates und Backup

Jetzt läuft er also, unser neuer ioBroker-Container. Aber was nun? Ganz klar, erst einmal Adapter installieren und einrichten (worauf ich hier nicht weiter eingehen werde). Und dann? Was kommt sonst in Zukunft noch auf uns zu?

Schnell werdet ihr wohl bei den Themen „Updates & Upgrades“ sowie „Backup & Restore“ landen. Für diese Beiden Themenbereiche habe ich bereits separate Tutorials verfasst. Schaut doch als Nächstes einfach mal dort vorbei.

ioBroker Docker Container – Updates & Upgrades

ioBroker Docker Container – Backup & Restore

Zugriff auf die Konsole des Containers

Es soll ja vorkommen, dass man mal über die Konsole Zugriff auf den ioBroker benötigt. Auch dies können wir über Portainer bewerkstelligen. Dazu einfach in den „Container details“ das Konsolenzeichen mit der Beschriftung „Console“ suchen und klicken. Im nächsten Fenster können wir dann mit einem weiteren Klick auf „Connect“ eine Session öffnen. Die Voreinstellungen können wir so übernehmen wie sie sind.

Links und Ressourcen

Im folgenden nun noch ein paar Infos und weiterführende Links zum Thema.

Quellcode und Docker-Image

Wer sich für den Quellcode zum Docker-Image interessiert, der wird in meinem Github-Repo fündig. Das fertige Image wird letztendlich in den Docker Hub gepusht und kann von dort in jegliche Docker-Installation herunter geladen werden.

Allgemeines zu Docker und Synology DiskStation

Allgemeine Infos und Grundlagen zu Docker findet ihr auf docker.com oder auch bei Wikipedia. Wärmstens empfehlen, aber leider nur in Englisch verfügbar, kann ich außerdem die offizielle und sehr umfangreiche Docker-Dokumentation.
Infos zum Docker-Paket für die Synology DiskStation gibt es natürlich auf der Webseite von Synology.

Support

In Sachen Support kann ich nur immer wieder auf den tollen Support im ioBroker-Forum hinweisen. Mittlerweile haben wir auch eine recht starke Docker-Fraktion die sich viel Mühe gibt aufkommende Fragen zuverlässig zu beantworten und bei Bedarf Unterstützung zu geben. Erstes Anlaufziel bei Fragen zum Tutorial sollte für euch mein ioBroker-Forum-Threat sein. Für kurze, einfache Problemchen bietet sich zwar auch die Kommentarfunktion unter diesem Tutorial an. Wenn es dann allerdings um Screenshots und Logfiles geht, sind die Möglichkeiten an dieser Stelle leider sehr begrenzt.

Bleibt mir eigentlich nur noch, euch viel Spaß beim experimentieren mit ioBroker zu wünschen. Für Kritik, Fragen und Anregungen steht euch wie immer die Kommentarfunktion zur Verfügung.

Content retrieved from: https://smarthome.buanet.de/2019/05/iobroker-unter-docker-auf-der-synology-diskstation-v3/.

Synology Hyperbackup mehrere USB-Laufwerke

Automated Offline Hyper Backup USB Drive Rotations

Disclosure: some of the links below are affiliate links, meaning, at no additional cost to you, I will earn a commission if you click through and make a purchase.

I’m relatively new to the Synology device ecosystem and have been spending time learning the nuances of what I can and cannot do within it. As part of my overall backup strategy, one of the things on my list to figure out was: rotating multiple USB backup drives. I’m a big, big, fan of keeping a set of offline, air gapped backups. Keeping cold backups on standby is a great strategy in protecting yourself from ransomeware, data corruption, or a total system meltdown.

I already had Hyper Backup configured for other backup tasks and trusted its capabilities, so I wanted to use it for this job if possible, too. With a little trial and error, I have a working USB drive rotation solution using only Hyper Backup, a Thermaltake BlackX drive dock, and an iHome Smart Plug. The process is completely automated except for occasionally physically rotating the drives. I don’t have a robot to do that part for me, yet.

The drive dock is connected to the Synology NAS via USB. Any SATA drive can be dropped in and used for backups after a little first time configuration. I’ve configured two drives to rotate, but I don’t see why you couldn’t rotate more if you wanted. Prior to a backup task starting, the iHome Smart Plug powers up the drive dock, DSM mounts the drive, Hyper Backup runs the backup task, then unmounts the drive when it’s done. The unmount is a key step in the automation process. Unmounting the disk allows the smart plug to power down the drive without upsetting DSM, and gives you a chance to freely rotate your drives.

I have the smart plug and Hyper Backup configured to power up and run backup tasks twice a week in the middle of the night. The drives just need powered up long enough for your backup task to actually complete and a drive consistency check to occasionally run. Out of 168 hours in a week, one drive is only ever attached to the NAS and powered on for four of them.

Smart Plug Configuration

I chose the iHome Smart Plug because it’s compatible with Amazon Alexa, Google Assistant and HomeKit. It’s worked out so well that I bought two more for another project. Controlling it is simple; just download the iHome Control app from your respective App Store. Once the you have the device added to the iHome app, setting up a schedule is very straightforward. Here’s what mine looks like:

Drive #1 Configuration

1. After everything is hooked up, drop in your first drive. Login to DSM, open Control Panel, click External Devices, find your new USB Disk, then Format it.
2. In Control Panel, click Shared folder
3. Click Create to start the Shared Folder Creation Wizard
4. Enter a Name and Description, uncheck Enable Recycle Bin, click Next
5. Check Encrypt this shared folder if you want to encrypt your remote backups while at rest, click Next

  • If you choose to encrypt your shared folder, you will need to manually mount the shared folder every time your device reboots or configure Key Manager.

6. Click Apply
7. The Edit Share Folder window will appear, choose a user to have Read/Write permissions, click OK

Backup Task Configuration

1. Open Hyper Backup, click the + in the lower left corner, click Data backup task
2. Under the Synology section, click Local folder & USB

  • Click Local folder & USB (single-version) if you don’t need file versioning

3. The Backup Wizard will launch, toggle Create backup task, then click the Shared Folder drop down and select the share that you just created on your external disk, enter a Directory name; this will be the name of your backup file, click Next

4. Do not select any shared folders, click Next

  • Selecting no shares will save you time and hassle later. Hyper Backup will create an very small backup file that you’ll need to copy to your other drives later. Don’t worry, we’ll circle back and update these settings to actually backup shares.

5. Select any applications that you’d like to backup, click Next
6. The Backup Settings configuration is important and will vary by scenario, here’s the key points:

  • Check Remove destination device when the backup task has successfully finished; this what forces the disk to unmount after the task completes, allowing it to gracefully power off
  • Set the backup schedule to what fits your scenario; this schedule should match your smart plug config, but start a few minutes after so the disk has time to mount
  • Enable the integrity check to run during your scheduled backup window, after your backup task has had time to complete


7. After clicking Next, set your Backup Rotation settings; If you don’t want to think about it, choosing Smart Recycle is always safe—read more about these options here—click Apply

  • Skip this step if you choose the single-version backup task earlier

8. Choose to back up now
9. After the backup is complete, remount the backup disk
10. Open File Station, find your backup share and locate the backup file

11. Copy the .hbk to a temporary location off of the USB drive of your choice
12. Unmount the disk and remove Drive #1 from the dock

Drive #2 Configuration

1. Drop in your second drive, open Control Panel, click External Devices, find your new USB Disk, then Format it
2. In Control Panel, click Shared folder
3. Click Create to start the Shared Folder Creation Wizard
4. Enter the same Name and Description that you used on Drive #1, uncheck Enable Recycle Bin, click Next
5. Check Encrypt this shared folder if you want to encrypt your remote backups while at rest; again, use the same encryption information as Drive #1, click Next
6. Click Apply
7. The Edit Share Folder window will appear, choose a user to have Read/Write permissions, click OK
8. Open File Station, and copy over your backup .hbk file to the your new share

  • At this point, both drives should have identical share names with the same .hbk backup file inside of it

Backup Your Data

1. Open Hyper Backup
2. Select your backup task, then in the lower right corner, click Settings
3. On the folders tab, select all of the shares that you’d like to backup, click OK
4. With your backup task still selected, click Back up now
5. Go get a beer
6. Once the backup completes, pull the drive from the dock and drop in the other
7. With your backup task still selected, click Back up now
8. Go get a beer

Wrapping Up

After you finish hydrating, your drives are ready to rotate. Use the iHome app to power off the dock and wait for the automation to kick in.

Content retrieved from: https://coreyblaz.com/automated-offline-hyper-backup-usb-drive-rotationsautomated-offline-hyper-backup-usb-drive-rotations/.

Betrieben von WordPress | Theme: Baskerville 2 von Anders Noren.

Nach oben ↑