Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. [HowTo] ioBroker unter Docker auf Synology DiskStation

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.1k

[HowTo] ioBroker unter Docker auf Synology DiskStation

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
iobrokerdockerbuanetsynologydiskstation
2.9k Beiträge 248 Kommentatoren 1.6m Aufrufe 123 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • D Offline
    D Offline
    dtp
    schrieb am zuletzt editiert von
    #1760

    Die Probleme mit der Anbindung der direkt als Paket auf der DS eingerichteten MariaDB 10 Datenbank über MACVLAN führten letztlich dazu, dass ich etwas entnerft auf einen Host-Betrieb des ioBroker umgeschwenkt bin. Leider haben sich da irgendwie im MACVLAN- oder Bridge-Betrieb immer die SQL-Datenbank und der Zugriff auf den yahka-Adapter ausgestochen. Seit Umstellung auf den Host-Betrieb läuft wieder alles rund.

    ioBroker im Docker-Container auf Synology DiskStation DS718+, HomeMatic IP über CCU3, IKEA Dirigera inkl. Matter, Apple Homekit, Amazon Alexa.

    1 Antwort Letzte Antwort
    0
    • T Offline
      T Offline
      ts020339
      schrieb am zuletzt editiert von ts020339
      #1761

      @dtp: Du hättest eigentlich die beiden Container MYSQL und phpMyADmin in dasselbe Netzwerk hängen müssen, wie dein iobroker container. Also einfach über docker-compose beim start den beiden containern das existierende macvlan (iob_public) zuweisen. Dann sehen und sprechen alle 3 miteinander.
      Das bridge Netzwerk ist dazu eigentlich nicht notwendig.
      (wenn ich mich richtig an die Anleitung von buanet erinnere, hat er dort dem macvlan bei Erstellung allerdings nur eine einzige IP-Adresse zugewiesen, das müsstest Du erweitern)

      IP-Adressen (und sogar MAC-Adressen für z.B. Filterregeln in Deinem Router) lassen sich einfach in der docker-compose zuweisen. Hier mal ein Auszug aus meinem eigenen docker-Container, aber Zuweisung zu einem existirenden NEtzwerk funktioniert mit jedem anderen Container auch.

      services:
        iobroker:
          image: buanet/iobroker:latest
          container_name: ioBroker
          hostname: ioBroker-Host
      
         *** environment / volumes / etc. Abschnitt *** (den Abschnitt habe ich hier rausgelöscht, um es übersichtlicher zu halten)
      
          mac_address: 02:42:13:5B:C5:64  (Beispiel)
          networks:
            iob_public:
              ipv4_address: 192.168.1.130  (Beispiel)
      
      #network "iob_public" zeigt auf bereits existierendes externes docker netzwerk
      networks:
        iob_public:
          external:
            name: iob_public
      

      Wenn Du das willst, kannst Du Deinen Containern auch noch das bridge Netzwerk zusätzlich mitgeben. Ich hätte vermutlich nur Angst, dass es da zu Konflikten kommt. Der Abschnitt in docker-compose sähe ungefähr so aus:

      services:
        iobroker:
          *** diverses ***
          networks:
            iob_public:
               ipv4_address: 192.168.1.130  (Beispiel)
            bridge:
               ipv4_address: 172.17.0.3  (Beispiel)
      

      GRüße

      S 2 Antworten Letzte Antwort
      0
      • T ts020339

        @dtp: Du hättest eigentlich die beiden Container MYSQL und phpMyADmin in dasselbe Netzwerk hängen müssen, wie dein iobroker container. Also einfach über docker-compose beim start den beiden containern das existierende macvlan (iob_public) zuweisen. Dann sehen und sprechen alle 3 miteinander.
        Das bridge Netzwerk ist dazu eigentlich nicht notwendig.
        (wenn ich mich richtig an die Anleitung von buanet erinnere, hat er dort dem macvlan bei Erstellung allerdings nur eine einzige IP-Adresse zugewiesen, das müsstest Du erweitern)

        IP-Adressen (und sogar MAC-Adressen für z.B. Filterregeln in Deinem Router) lassen sich einfach in der docker-compose zuweisen. Hier mal ein Auszug aus meinem eigenen docker-Container, aber Zuweisung zu einem existirenden NEtzwerk funktioniert mit jedem anderen Container auch.

        services:
          iobroker:
            image: buanet/iobroker:latest
            container_name: ioBroker
            hostname: ioBroker-Host
        
           *** environment / volumes / etc. Abschnitt *** (den Abschnitt habe ich hier rausgelöscht, um es übersichtlicher zu halten)
        
            mac_address: 02:42:13:5B:C5:64  (Beispiel)
            networks:
              iob_public:
                ipv4_address: 192.168.1.130  (Beispiel)
        
        #network "iob_public" zeigt auf bereits existierendes externes docker netzwerk
        networks:
          iob_public:
            external:
              name: iob_public
        

        Wenn Du das willst, kannst Du Deinen Containern auch noch das bridge Netzwerk zusätzlich mitgeben. Ich hätte vermutlich nur Angst, dass es da zu Konflikten kommt. Der Abschnitt in docker-compose sähe ungefähr so aus:

        services:
          iobroker:
            *** diverses ***
            networks:
              iob_public:
                 ipv4_address: 192.168.1.130  (Beispiel)
              bridge:
                 ipv4_address: 172.17.0.3  (Beispiel)
        

        GRüße

        S Offline
        S Offline
        stevie77
        schrieb am zuletzt editiert von
        #1762

        @ts020339 sagte in [[HowTo][Anleitung]

        Okay, danke für die Bestätigung dass es so gehen müsste.

        (wenn ich mich richtig an die Anleitung von buanet erinnere, hat er dort dem macvlan bei Erstellung allerdings nur eine einzige IP-Adresse zugewiesen, das müsstest Du erweitern)

        Variante 1: Exakt das hat eine schnelle Lösung erstmal verhindert, das hatte ich tatsächlich auch schon probiert. Kann ich einfach in Portainer die Netzwerkkonfiguration iob_public_conf und das Netzwerk iob_public löschen, neu erstellen und dann dem ioBroker-Container sagen, er soll das neue Netzwerk nehmen? Oder müsste ich bei jedem Neustart das Netzwerk neu hinzufügen (merkt er sich ja scheinbar nicht wenn nachträglich hinzugefügt)? Momentan merkt er sich iob_public, weil der Container damit erstellt/neu aufgebaut wurde? Oder würde da ein Recreate oder Edit mit neu deployen helfen? Daten dürfte ich damit nicht verlieren, da ich ja das Verzeichnis wie in der Anleitung beschrieben außerhalb des Containers gemappt habe?!

        Variante 2: Als Alternative hatte ich es bereits geschafft per Docker Compose tatsächlich für MySQL und phpMyAdmin ein separates (virtuelles) Netzwerk mit festen IPs drin zu bauen. Damit könnte ich dann immer dieselbe IP in ioBroker für die DB-Verbindung angeben. Inzwischen habe ich auch herausgefunden, dass man die DB-Verbindung über den Servicenamen hinbekommt. Dann ist es ja sowieso kein Problem mehr. Immer unter der Voraussetzung, man fügt dem ioBroker-Container das neue Netzwerk hinzu. Was man dann bei jedem Neustart aber wiederholen muss und das Runterfahren des DB-Stacks geht dann auch nicht, da dessen Netzwerk noch von ioBroker verwendet wird.

        Variante 3: Du erstellst also auch ioBroker per Docker Compose, wenn ich das richtig gesehen habe, ne? Aber das Netzwerk iob_public erstellst du also nicht per Compose sondern greifst auf es als bestehendes Netzwerk zurück?! Warum nicht auch komplett erstellen? Müsste doch mit den gezeigten Bordmitteln auch gehen, oder?
        Wollte Compose erst vermeiden, aber das gleichzeitige reproduzierbare Hoch- und Runterfahren hat schon was, merke ich inzwischen. War mir auch nicht sicher, ob ich die DB für ioBroker brauche (hielt die Anbindung meines E3/DC-Hauskraftwerks erst für ne Spielerei, deswegen DB optional für Spielbetrieb), aber inzwischen werde ich die drei Container wohl immer zusammen brauchen. Würdest du mir vielleicht dein komplettes docker-compose.yml zukommen lassen (geht das per Chat)? Dann würde ich den Schritt wagen und hätte eine vergleichbare Lösung in der Hinterhand als Backup sozusagen...

        1 Antwort Letzte Antwort
        0
        • andreA andre

          @RK62 @Holzlenkrad

          Zur installation von zusätzlichen Linux Paketen könnt ihr auch eine Umgebungsvariable benutzen. in diesem Fall die Variable "PACKAGES" (Siehe hier). Die manuelle Installatation innerhalb eines Containers ist kein guter Weg, da du diesen Schritt immer wiederholen musst, wenn du einen neuen Container erstellst...

          @Holzlenkrad sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:

          Ach so, hier hieß es schon ein paar Mal, dass der Kernel der Diskstation einen Bug in Verbindung mit dem Netmode host hat.

          Das ist korrekt, allerdings habe ich im aktuellen Beta (v3.0.2) dazu was getan. Dort sollte der "Host-mode" wieder funktionieren.

          sudo setcap 'cap_net_raw,cap_net_admin+eip' $(readlink -f $(which node))
          

          Sollte im aktuellen Beta nicht funktionieren, da das Image statt "sudo" den Befehl "gosu" verwendet.

          Capabilities wie "NET_ADMIN" oder "NET_RAW" sollten/ müssen bei Bedarf auch in den erweiterten Container-Einstellungen gesetzt werden. Geht allerdings nur im Portainer:

          bce61a95-d2db-4fef-8480-e9fd198325f6-image.png

          MfG,
          André

          Q Offline
          Q Offline
          qosi
          schrieb am zuletzt editiert von
          #1763

          @andre said in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:

          @RK62 @Holzlenkrad

          Zur installation von zusätzlichen Linux Paketen könnt ihr auch eine Umgebungsvariable benutzen. in diesem Fall die Variable "PACKAGES" (Siehe hier). Die manuelle Installatation innerhalb eines Containers ist kein guter Weg, da du diesen Schritt immer wiederholen musst, wenn du einen neuen Container erstellst...

          @Holzlenkrad sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:

          Ach so, hier hieß es schon ein paar Mal, dass der Kernel der Diskstation einen Bug in Verbindung mit dem Netmode host hat.

          Das ist korrekt, allerdings habe ich im aktuellen Beta (v3.0.2) dazu was getan. Dort sollte der "Host-mode" wieder funktionieren.

          sudo setcap 'cap_net_raw,cap_net_admin+eip' $(readlink -f $(which node))
          

          Sollte im aktuellen Beta nicht funktionieren, da das Image statt "sudo" den Befehl "gosu" verwendet.

          Capabilities wie "NET_ADMIN" oder "NET_RAW" sollten/ müssen bei Bedarf auch in den erweiterten Container-Einstellungen gesetzt werden. Geht allerdings nur im Portainer:

          bce61a95-d2db-4fef-8480-e9fd198325f6-image.png

          MfG,
          André

          Guten Abend,
          ich versuche seit einigen Tagen mein RPI Iobroker Installation auf meine Synology, im Docker unter zu bringen.
          Bis jetzt habe ich soweit alles zum laufen bekommen, bis auf zwei Dinge hmip, und den radar2 Adapter.

          Auch mit den Env Variable Packages "vi libcap2-bin arp-scan bluetooth bluez libbluetooth-dev libudev-dev net-tools", dem einschalten der Capabilities, versucht den Befehl in der konsole mit

          gosu root setcap 'cap_net_raw,cap_net_admin+eip' $(readlink -f $(which node))
          

          oder auch

          sudo setcap 'cap_net_raw,cap_net_admin+eip' $(readlink -f $(which node))
          

          Kommt dieser Fehler...

          Failed to set capabilities on file `/usr/bin/node' (Operation not supported)
          The value of the capability argument is not permitted for a file. Or the file is not a regular (non-symlink) file
          

          Komme ich nicht weiter und der Adapter bringt mir ständig diesen Fehler...

          radar2.0	2020-04-24 22:07:37.928	error	(12366) Error: bind EACCES 0.0.0.0:67 at state.handle.lookup (dgram.js:242:18) at process._tickCallback (internal/process/next_tick.js:63:19)
          radar2.0	2020-04-24 22:07:37.927	error	(12366) uncaught exception: bind EACCES 0.0.0.0:67
          

          Habe eine macvlan Konfiguration...

          Hat jemand eine Idee oder weiss was dem kleinen Radar2 hier fehlt?
          Bin ich mit den setcap auf dem richtigen Weg? Warum will er den die Befehle hier nicht nehmen?

          Würde mich über Hilfe oder ein Link zur Problemlösung freuen, danke!

          Q 1 Antwort Letzte Antwort
          0
          • T ts020339

            @dtp: Du hättest eigentlich die beiden Container MYSQL und phpMyADmin in dasselbe Netzwerk hängen müssen, wie dein iobroker container. Also einfach über docker-compose beim start den beiden containern das existierende macvlan (iob_public) zuweisen. Dann sehen und sprechen alle 3 miteinander.
            Das bridge Netzwerk ist dazu eigentlich nicht notwendig.
            (wenn ich mich richtig an die Anleitung von buanet erinnere, hat er dort dem macvlan bei Erstellung allerdings nur eine einzige IP-Adresse zugewiesen, das müsstest Du erweitern)

            IP-Adressen (und sogar MAC-Adressen für z.B. Filterregeln in Deinem Router) lassen sich einfach in der docker-compose zuweisen. Hier mal ein Auszug aus meinem eigenen docker-Container, aber Zuweisung zu einem existirenden NEtzwerk funktioniert mit jedem anderen Container auch.

            services:
              iobroker:
                image: buanet/iobroker:latest
                container_name: ioBroker
                hostname: ioBroker-Host
            
               *** environment / volumes / etc. Abschnitt *** (den Abschnitt habe ich hier rausgelöscht, um es übersichtlicher zu halten)
            
                mac_address: 02:42:13:5B:C5:64  (Beispiel)
                networks:
                  iob_public:
                    ipv4_address: 192.168.1.130  (Beispiel)
            
            #network "iob_public" zeigt auf bereits existierendes externes docker netzwerk
            networks:
              iob_public:
                external:
                  name: iob_public
            

            Wenn Du das willst, kannst Du Deinen Containern auch noch das bridge Netzwerk zusätzlich mitgeben. Ich hätte vermutlich nur Angst, dass es da zu Konflikten kommt. Der Abschnitt in docker-compose sähe ungefähr so aus:

            services:
              iobroker:
                *** diverses ***
                networks:
                  iob_public:
                     ipv4_address: 192.168.1.130  (Beispiel)
                  bridge:
                     ipv4_address: 172.17.0.3  (Beispiel)
            

            GRüße

            S Offline
            S Offline
            stevie77
            schrieb am zuletzt editiert von
            #1764

            @ts020339 sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:

            Danke für den Ansatz. Ohne die zusätzliche Bridge und mit vordefiniertem macvlan-Netzwerk habe ich die Erstellung des ioBroker-Containers per Compose nun auch hinbekommen. Lediglich die Bridge funktioniert noch nicht.

            Wenn Du das willst, kannst Du Deinen Containern auch noch das bridge Netzwerk zusätzlich mitgeben. Ich hätte vermutlich nur Angst, dass es da zu Konflikten kommt. Der Abschnitt in docker-compose sähe ungefähr so aus:

            services:
              iobroker:
                *** diverses ***
                networks:
                  iob_public:
                     ipv4_address: 192.168.1.130  (Beispiel)
                  bridge:
                     ipv4_address: 172.17.0.3  (Beispiel)
            
            version: "3.8"
            services:
            
                iobroker-test:
                  container_name: iobroker-test
                  image: buanet/iobroker:latest
                  hostname: iobroker
                  restart: always
                  mac_address: 02-42-C0-A8-01-F9
                  dns:
                    - 127.0.0.1
                    - 192.168.1.1
                  networks:
                    iobroker-network:
                      ipv4_address: 192.168.1.225
                    bridge-network:
                      ipv4_address: 172.17.0.100
                  volumes:
                    - "/home/pi/docker-data/iobroker-compose-data:/opt/iobroker"
                  environment:
                    - PACKAGES=nano
            
            networks:
            
              iobroker-network:
                external:
                  name: iobroker-network
              #bridge-network:
              #  external:
               #   name: bridge
            

            Wie oben aufgeführt, gibt's den Fehler: ERROR: Service "iobroker-test" uses an undefined network "bridge".
            Wenn ich versuche bridge-network vergleichbar auf die vorhandene Standard-Bridge zu mappen (auskommentierte Zeilen wieder rein), dann gibt's den Fehler ERROR: for iobroker-test user specified IP address is supported on user defined networks only. Mir scheint das mit dem Vergeben der IP der falsche Ansatz zu sein. Wie kann ich definieren, die Standard-Bridge zusätzlich zu verwenden aber ohne eine IP zu definieren?

            Danke und Grüße,
            Steffen

            1 Antwort Letzte Antwort
            0
            • FoodFighterF Offline
              FoodFighterF Offline
              FoodFighter
              schrieb am zuletzt editiert von
              #1765

              @stevie77 said in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:

              dann gibt's den Fehler ERROR: for iobroker-test user specified IP address is supported on user defined networks only

              Ist mir tatsächlich auch aufgefallen.
              Passiert übrigens genauso, wenn man versucht der Bridge direkt über Poirtainer eine IP zuzuweisen.
              Ohne feste interne IP kann es beim RPi-Reboot passieren, dass man hinterher die interne influxdb- und mosquitto-IP im IOBroker wieder anpassen muss. (Je nachdem in welcher Reihenfolge die Container durchstarten)
              Ein Reboot kommt bei mir nicht oft vor, habe ich daher nicht weiter verfolgt.

              1 Antwort Letzte Antwort
              0
              • andreA Offline
                andreA Offline
                andre
                Developer
                schrieb am zuletzt editiert von
                #1766

                Nutzt nach Möglichkeit ein selbst erstelltes Bridge Netzwerk. Im default Bridge gibt it es einige Besonderheiten.
                Außerdem empfehle ich bei der Konfiguration z. B. des SQL adapters nicht auf d die IP, sondern auf den Namen des Containers mit der DB zu setzen (setzt ein selbst erstelltes bridge Netzwerk voraus).

                MfG,
                André

                Bitte keine Support-Fragen per PN! Nutzt die öffentliche Kanäle damit auch andere von den Antworten profitieren können!

                1 Antwort Letzte Antwort
                0
                • T Offline
                  T Offline
                  ts020339
                  schrieb am zuletzt editiert von ts020339
                  #1767

                  @stevie77 @FoodFighter
                  nutzt, wie @andre schreibt, eigene erstellte bridge Netzwerke, nicht das Standard bridge Netzwerk, wenn ihr so Multi-Netzwerk-Container betreiben wollt. (Und wenn das wirklich notwendig ist. Oft ist es sinnvoller den Dienst der auf dem Host-Netzwerk läuft auch in das eigene "docker"/"iobroker" Netzwerk zu schieben, bzw ihm ein eigenes macvlan NEtzwerk zu verpassen. Dann kann man den Dienst ganz normal über das Netzwerk unter eigener IP-Adresse erreichen. )

                  Zur Vollständigkeit: in das Standard-"bridge"-Netzwerk kommt ihr mit folgendem docker-compose Eintrag

                  services:
                    app:
                      image: ubuntu:latest
                      network_mode: bridge
                  

                  Aber ich weiß aktuell gar nicht, ob das zusammen mit anderen Netzwerken nutzbar ist. Wie oben geschrieben, dann lieber selber vorher ein eigens bridge Netzwerk erstellen. Geht über docker auf der Kommandozeile oder sehr einfach auch in Portainer. Danach kann man seinen Containern die erstellten Netzwerke zuweisen.

                  Damit die Container-Netzwerk-Einstellungen auch einen Image-Wechsel/Update überstehen (also der Original-Container gelöscht wird und aus einem Image neu erzeugt wird), müsst ihr die Netzwerke bereits bei Container-Erzeugung zuweisen. Entweder über docker-compose (siehe oben) oder ihr beschäftigt euch mit den "Stack"-Funktionalitäten in Portainer. Dort geht das auch:
                  57c89c1a-4bd7-44af-a515-61f02daadb8f-grafik.png

                  1 Antwort Letzte Antwort
                  0
                  • FoodFighterF Offline
                    FoodFighterF Offline
                    FoodFighter
                    schrieb am zuletzt editiert von
                    #1768

                    @andre @ts020339
                    Vielen Dank für die ausführlichen Erklärungen!

                    1 Antwort Letzte Antwort
                    0
                    • S Offline
                      S Offline
                      stevie77
                      schrieb am zuletzt editiert von
                      #1769

                      So, ich hab mir jetzt wie angeraten ne eigene Default-Bridge gebastelt, wo alle erzeugten Container zusätzlich reinkommen. Mir war zu Beginn der Vorteil von Docker Compose ja nicht so ganz klar und der Aufwand ist initial auch nicht ganz gering (einige Nacht-Sessions jetzt), aber wenn man es mal hat, ist der Aufwand für z.B. eine weitere Testinstanz ja quasi super gering. Externes ioBroker-Verzeichnis kopieren, docker-compose.yml leicht anpassen und man hat eine neue ioBroker-Installation samt DB und DB-Client zum Testen. Sehr geil! Vielen Dank an alle für eure Unterstützung!

                      Der Vollständigkeit halber:

                      version: "3.8"
                      services:
                      
                          iobroker:
                            container_name: iobroker
                            image: buanet/iobroker:latest
                            hostname: iobroker
                            restart: always
                            mac_address: 02-42-C0-A8-01-F9
                            dns:
                              - 127.0.0.1
                              - 192.168.1.1
                            networks:
                              iobroker-network:
                                ipv4_address: 192.168.1.224
                              default-network:
                            volumes:
                              - "/home/pi/docker-data/iobroker-data:/opt/iobroker"
                            environment:
                              - PACKAGES=nano
                            depends_on:
                              - mysql-iobroker
                      
                          mysql-iobroker:
                            container_name: mysql-iobroker
                            image: hypriot/rpi-mysql:latest
                            restart: always
                            networks:
                              default-network:
                            ports: 
                              - "3306:3306"
                            volumes:
                              - db-data:/var/lib/mysql
                            environment:
                              - MYSQL_DATABASE=iobroker
                              - MYSQL_USER=x
                              - MYSQL_PASSWORD=y
                              - MYSQL_ROOT_PASSWORD=z
                      
                          phpmyadmin:
                            container_name: phpmyadmin-iobroker
                            image: jackgruber/phpmyadmin
                            restart: always
                            networks:
                              default-network:
                            ports:
                              - "8080:80"
                            volumes:
                              - temp-data:/sessions
                            environment:
                              - PMA_ARBITRARY=1
                              - PMA_HOST=mysql-iobroker
                              - PMA_PORT=3306
                            depends_on:
                            - mysql-iobroker
                      
                      volumes:
                      
                        db-data:
                        temp-data:
                      
                      networks:
                      
                        iobroker-network:
                          external:
                            name: iobroker-network
                        default-network:
                          name: default-network
                          driver: bridge
                      

                      Dann kann ich mich jetzt ja endlich wieder konkreten Projekten in ioBroker widmen und das mal besser kennenlernen. :-)

                      Viele Grüße,
                      Steffen

                      PS: Wie sichert man eigentlich die SD-Karte eines Raspberry Pi 4 komplett? Einfach kopieren wird zum Wiederherstellen ja wahrscheinlich nichts bringen...

                      FoodFighterF 1 Antwort Letzte Antwort
                      0
                      • Q qosi

                        @andre said in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:

                        @RK62 @Holzlenkrad

                        Zur installation von zusätzlichen Linux Paketen könnt ihr auch eine Umgebungsvariable benutzen. in diesem Fall die Variable "PACKAGES" (Siehe hier). Die manuelle Installatation innerhalb eines Containers ist kein guter Weg, da du diesen Schritt immer wiederholen musst, wenn du einen neuen Container erstellst...

                        @Holzlenkrad sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:

                        Ach so, hier hieß es schon ein paar Mal, dass der Kernel der Diskstation einen Bug in Verbindung mit dem Netmode host hat.

                        Das ist korrekt, allerdings habe ich im aktuellen Beta (v3.0.2) dazu was getan. Dort sollte der "Host-mode" wieder funktionieren.

                        sudo setcap 'cap_net_raw,cap_net_admin+eip' $(readlink -f $(which node))
                        

                        Sollte im aktuellen Beta nicht funktionieren, da das Image statt "sudo" den Befehl "gosu" verwendet.

                        Capabilities wie "NET_ADMIN" oder "NET_RAW" sollten/ müssen bei Bedarf auch in den erweiterten Container-Einstellungen gesetzt werden. Geht allerdings nur im Portainer:

                        bce61a95-d2db-4fef-8480-e9fd198325f6-image.png

                        MfG,
                        André

                        Guten Abend,
                        ich versuche seit einigen Tagen mein RPI Iobroker Installation auf meine Synology, im Docker unter zu bringen.
                        Bis jetzt habe ich soweit alles zum laufen bekommen, bis auf zwei Dinge hmip, und den radar2 Adapter.

                        Auch mit den Env Variable Packages "vi libcap2-bin arp-scan bluetooth bluez libbluetooth-dev libudev-dev net-tools", dem einschalten der Capabilities, versucht den Befehl in der konsole mit

                        gosu root setcap 'cap_net_raw,cap_net_admin+eip' $(readlink -f $(which node))
                        

                        oder auch

                        sudo setcap 'cap_net_raw,cap_net_admin+eip' $(readlink -f $(which node))
                        

                        Kommt dieser Fehler...

                        Failed to set capabilities on file `/usr/bin/node' (Operation not supported)
                        The value of the capability argument is not permitted for a file. Or the file is not a regular (non-symlink) file
                        

                        Komme ich nicht weiter und der Adapter bringt mir ständig diesen Fehler...

                        radar2.0	2020-04-24 22:07:37.928	error	(12366) Error: bind EACCES 0.0.0.0:67 at state.handle.lookup (dgram.js:242:18) at process._tickCallback (internal/process/next_tick.js:63:19)
                        radar2.0	2020-04-24 22:07:37.927	error	(12366) uncaught exception: bind EACCES 0.0.0.0:67
                        

                        Habe eine macvlan Konfiguration...

                        Hat jemand eine Idee oder weiss was dem kleinen Radar2 hier fehlt?
                        Bin ich mit den setcap auf dem richtigen Weg? Warum will er den die Befehle hier nicht nehmen?

                        Würde mich über Hilfe oder ein Link zur Problemlösung freuen, danke!

                        Q Offline
                        Q Offline
                        qosi
                        schrieb am zuletzt editiert von
                        #1770

                        @qosi said in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:

                        @andre said in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:

                        @RK62 @Holzlenkrad

                        Zur installation von zusätzlichen Linux Paketen könnt ihr auch eine Umgebungsvariable benutzen. in diesem Fall die Variable "PACKAGES" (Siehe hier). Die manuelle Installatation innerhalb eines Containers ist kein guter Weg, da du diesen Schritt immer wiederholen musst, wenn du einen neuen Container erstellst...

                        @Holzlenkrad sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:

                        Ach so, hier hieß es schon ein paar Mal, dass der Kernel der Diskstation einen Bug in Verbindung mit dem Netmode host hat.

                        Das ist korrekt, allerdings habe ich im aktuellen Beta (v3.0.2) dazu was getan. Dort sollte der "Host-mode" wieder funktionieren.

                        sudo setcap 'cap_net_raw,cap_net_admin+eip' $(readlink -f $(which node))
                        

                        Sollte im aktuellen Beta nicht funktionieren, da das Image statt "sudo" den Befehl "gosu" verwendet.

                        Capabilities wie "NET_ADMIN" oder "NET_RAW" sollten/ müssen bei Bedarf auch in den erweiterten Container-Einstellungen gesetzt werden. Geht allerdings nur im Portainer:

                        bce61a95-d2db-4fef-8480-e9fd198325f6-image.png

                        MfG,
                        André

                        Guten Abend,
                        ich versuche seit einigen Tagen mein RPI Iobroker Installation auf meine Synology, im Docker unter zu bringen.
                        Bis jetzt habe ich soweit alles zum laufen bekommen, bis auf zwei Dinge hmip, und den radar2 Adapter.

                        Auch mit den Env Variable Packages "vi libcap2-bin arp-scan bluetooth bluez libbluetooth-dev libudev-dev net-tools", dem einschalten der Capabilities, versucht den Befehl in der konsole mit

                        gosu root setcap 'cap_net_raw,cap_net_admin+eip' $(readlink -f $(which node))
                        

                        oder auch

                        sudo setcap 'cap_net_raw,cap_net_admin+eip' $(readlink -f $(which node))
                        

                        Kommt dieser Fehler...

                        Failed to set capabilities on file `/usr/bin/node' (Operation not supported)
                        The value of the capability argument is not permitted for a file. Or the file is not a regular (non-symlink) file
                        

                        Komme ich nicht weiter und der Adapter bringt mir ständig diesen Fehler...

                        radar2.0	2020-04-24 22:07:37.928	error	(12366) Error: bind EACCES 0.0.0.0:67 at state.handle.lookup (dgram.js:242:18) at process._tickCallback (internal/process/next_tick.js:63:19)
                        radar2.0	2020-04-24 22:07:37.927	error	(12366) uncaught exception: bind EACCES 0.0.0.0:67
                        

                        Habe eine macvlan Konfiguration...

                        Hat jemand eine Idee oder weiss was dem kleinen Radar2 hier fehlt?
                        Bin ich mit den setcap auf dem richtigen Weg? Warum will er den die Befehle hier nicht nehmen?

                        Würde mich über Hilfe oder ein Link zur Problemlösung freuen, danke!

                        Hallo zusammen,

                        ich habe weitere Pakete der ENV hinzugefügt, die in auf der Suche nach einer Lösung zu dem Thema Radar2 gefunden habe.
                        build-essential libcairo2-dev libcap2-bin libpango1.0-dev libjpeg-dev librsvg2-dev arp-scan bluetooth bluez libbluetooth-dev libudev-dev net-tools openssh-server

                        Leider hilft das auch nicht weiter...

                        Muss ich den iobroker im host bridge laufen lassen und nicht in einer macvlan konfiguration?
                        Für jegliche Hilfe bin ich dankbar!

                        1 Antwort Letzte Antwort
                        0
                        • FoodFighterF Offline
                          FoodFighterF Offline
                          FoodFighter
                          schrieb am zuletzt editiert von FoodFighter
                          #1771

                          Ich habe jetzt auch einfach mal für jeden Container ein vollumfassendes Compose-File gemacht.
                          Schaden kann es nicht, ich sehe es als Einstellungs-Backup.
                          Ich habe bewusst für jeden Container ein eigenes Compose-File erstellt zwecks Modularität.

                          Zur Vollständigkeit auch meine kompletten Docker-(Compose) Files:

                          $ docker network create \
                            --driver=macvlan \
                            --subnet=192.168.178.0/24 \
                            --ip-range=192.168.178.12/32 \
                            --gateway=192.168.178.1 \
                            --opt parent=eth0 \
                            iob_public
                          
                          $ docker network create \
                            --driver=bridge \
                            --subnet=172.20.0.0/16 \
                            --gateway=172.20.0.1 \
                            my-bridge-network
                          

                          version: "2"
                          
                          services:
                           portainer:
                             container_name: portainer
                             image: portainer/portainer
                             command: -H unix:///var/run/docker.sock
                             hostname: portainer
                             restart: always
                             networks:
                               bridge-network:
                                 ipv4_address: 172.20.0.2
                             ports:
                               - 9000:9000
                               - 8000:8000
                             volumes:
                               - /var/run/docker.sock:/var/run/docker.sock
                               - portainer_data:/data
                          
                          volumes:
                           portainer_data:
                          
                          networks:
                           bridge-network:
                             external:
                               name: my-bridge-network
                          

                          version: "2"
                          
                          services:
                            pihole:
                              container_name: pihole
                              image: pihole/pihole:latest
                              hostname: pihole
                              restart: unless-stopped
                              network_mode: host
                              dns:
                                - 127.0.0.1
                                - 192.168.178.1
                              environment:
                                TZ: 'Europe/Berlin'
                                WEBPASSWORD: 'denkstewohl:P'
                                DNS1: '192.168.178.1'
                                DNS2: 'no'
                                CONDITIONAL_FORWARDING: 'true'
                                CONDITIONAL_FORWARDING_IP: '192.168.178.1'
                                CONDITIONAL_FORWARDING_DOMAIN: 'fritz.box'
                          	  IPv6: 'true'
                                ServerIP: '192.168.178.11'
                                ServerIPv6: 'fd00::4db4:550f:97c6:aff4'
                              volumes:
                                 - '/home/pi/pihole/pihole/:/etc/pihole/'
                                 - '/home/pi/pihole/dnsmasq.d/:/etc/dnsmasq.d/'
                          

                          version: "2"
                          
                          services:
                            iobroker:
                              container_name: iobroker
                              image: buanet/iobroker:latest
                              hostname: iobroker
                              restart: unless-stopped
                              mac_address: 2A-F7-E1-A3-9D-C8
                              dns:
                                - 127.0.0.1
                                - 192.168.178.1
                              networks:
                                iobroker-network:
                                  ipv4_address: 192.168.178.12
                                bridge-network:
                                  ipv4_address: 172.20.0.3
                              volumes:
                                - "/home/pi/iobroker/iobrokerdata:/opt/iobroker"
                              environment:
                                - PACKAGES=vim nano build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
                                - USBDEVICES=/dev/ttyACM0
                              devices:
                                - "/dev/ttyACM0:/dev/ttyACM0"
                          networks:
                            iobroker-network:
                              external:
                                name: iob_public
                            bridge-network:
                              external:
                                name: my-bridge-network
                          

                          version: "2"
                          
                          services:
                            influxdb:
                              container_name: influxdb
                              image: influxdb:latest
                              hostname: InfluxDB
                              restart: unless-stopped
                              networks:
                                bridge-network:
                                  ipv4_address: 172.20.0.4
                              ports:
                                - 8086:8086
                              volumes:
                                - /home/pi/influxdb/influxdb.conf:/etc/influxdb/influxdb.conf
                                - /home/pi/influxdb/influxdb_data:/var/lib/influxdb
                              environment:
                                - TZ="Europe/Berlin"
                          
                          networks:
                            bridge-network:
                              external:
                                name: my-bridge-network
                          

                          version: "2"
                          
                          services:
                            mosquitto:
                              container_name: mosquitto
                              image: eclipse-mosquitto
                              hostname: mosquitto
                              restart: unless-stopped
                              networks:
                                bridge-network:
                                  ipv4_address: 172.20.0.5
                              ports:
                                - 1883:1883
                                - 9001:9001
                              volumes:
                                - /home/pi/mosquitto/config:/mosquitto/config/:ro
                                - /home/pi/mosquitto/log:/mosquitto/log
                                - /home/pi/mosquitto/data:/mosquitto/data
                              environment:
                                - TZ="Europe/Berlin"
                          
                          networks:
                            bridge-network:
                              external:
                                name: my-bridge-network
                          

                          Vielleicht hilft es irgendwann mal jemanden weiter, der hier drüber stolpert.
                          Bevor das aber völlig ins OffTopic läuft soll es das diesbezüglich gewesen sein.

                          S 1 Antwort Letzte Antwort
                          0
                          • S stevie77

                            So, ich hab mir jetzt wie angeraten ne eigene Default-Bridge gebastelt, wo alle erzeugten Container zusätzlich reinkommen. Mir war zu Beginn der Vorteil von Docker Compose ja nicht so ganz klar und der Aufwand ist initial auch nicht ganz gering (einige Nacht-Sessions jetzt), aber wenn man es mal hat, ist der Aufwand für z.B. eine weitere Testinstanz ja quasi super gering. Externes ioBroker-Verzeichnis kopieren, docker-compose.yml leicht anpassen und man hat eine neue ioBroker-Installation samt DB und DB-Client zum Testen. Sehr geil! Vielen Dank an alle für eure Unterstützung!

                            Der Vollständigkeit halber:

                            version: "3.8"
                            services:
                            
                                iobroker:
                                  container_name: iobroker
                                  image: buanet/iobroker:latest
                                  hostname: iobroker
                                  restart: always
                                  mac_address: 02-42-C0-A8-01-F9
                                  dns:
                                    - 127.0.0.1
                                    - 192.168.1.1
                                  networks:
                                    iobroker-network:
                                      ipv4_address: 192.168.1.224
                                    default-network:
                                  volumes:
                                    - "/home/pi/docker-data/iobroker-data:/opt/iobroker"
                                  environment:
                                    - PACKAGES=nano
                                  depends_on:
                                    - mysql-iobroker
                            
                                mysql-iobroker:
                                  container_name: mysql-iobroker
                                  image: hypriot/rpi-mysql:latest
                                  restart: always
                                  networks:
                                    default-network:
                                  ports: 
                                    - "3306:3306"
                                  volumes:
                                    - db-data:/var/lib/mysql
                                  environment:
                                    - MYSQL_DATABASE=iobroker
                                    - MYSQL_USER=x
                                    - MYSQL_PASSWORD=y
                                    - MYSQL_ROOT_PASSWORD=z
                            
                                phpmyadmin:
                                  container_name: phpmyadmin-iobroker
                                  image: jackgruber/phpmyadmin
                                  restart: always
                                  networks:
                                    default-network:
                                  ports:
                                    - "8080:80"
                                  volumes:
                                    - temp-data:/sessions
                                  environment:
                                    - PMA_ARBITRARY=1
                                    - PMA_HOST=mysql-iobroker
                                    - PMA_PORT=3306
                                  depends_on:
                                  - mysql-iobroker
                            
                            volumes:
                            
                              db-data:
                              temp-data:
                            
                            networks:
                            
                              iobroker-network:
                                external:
                                  name: iobroker-network
                              default-network:
                                name: default-network
                                driver: bridge
                            

                            Dann kann ich mich jetzt ja endlich wieder konkreten Projekten in ioBroker widmen und das mal besser kennenlernen. :-)

                            Viele Grüße,
                            Steffen

                            PS: Wie sichert man eigentlich die SD-Karte eines Raspberry Pi 4 komplett? Einfach kopieren wird zum Wiederherstellen ja wahrscheinlich nichts bringen...

                            FoodFighterF Offline
                            FoodFighterF Offline
                            FoodFighter
                            schrieb am zuletzt editiert von
                            #1772

                            @stevie77 said in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:

                            Wie sichert man eigentlich die SD-Karte eines Raspberry Pi 4 komplett? Einfach kopieren wird zum Wiederherstellen ja wahrscheinlich nichts bringen...

                            Da gibt es viele Möglichkeiten.
                            Im Einfachsten Fall fährst du den Pi herunter und clonst die komplette SD-Karte mit z.B. Win32DiskManager

                            Hier werden weitere Möglichkeiten beschrieben.

                            Ich persönlich halte es so:
                            Auf dem RPi selbst läuft nur Docker - sonst nichts.
                            Die Container bekommen alle ein Volume ins Pi-Home-Verzeichnis gemountet, in dem dann die jeweiligen Einstellungen drin liegen.
                            Das Home-Verzeichnis sichere ich ab und zu mal auf den NAS.

                            Sollte der Pi die Segel streichen -> Neues Raspbian auf eine SD-Karte spielen, Docker installieren, die Backups der Container zurück ins Home-Verzeichnis ziehen -> die o.g. Docker-Compose-Files nacheinander ausführen -> fertig.

                            Das umständlichste dabei wäre es dann das Raspbian wieder auf die SSD zu verschieben und den PI nur noch von SD booten zu lassen....Vielleicht kann Raspbian das ja endlich bald mal komplett von SSD - dann wird auch das lachhaft.

                            1 Antwort Letzte Antwort
                            0
                            • FoodFighterF FoodFighter

                              Ich habe jetzt auch einfach mal für jeden Container ein vollumfassendes Compose-File gemacht.
                              Schaden kann es nicht, ich sehe es als Einstellungs-Backup.
                              Ich habe bewusst für jeden Container ein eigenes Compose-File erstellt zwecks Modularität.

                              Zur Vollständigkeit auch meine kompletten Docker-(Compose) Files:

                              $ docker network create \
                                --driver=macvlan \
                                --subnet=192.168.178.0/24 \
                                --ip-range=192.168.178.12/32 \
                                --gateway=192.168.178.1 \
                                --opt parent=eth0 \
                                iob_public
                              
                              $ docker network create \
                                --driver=bridge \
                                --subnet=172.20.0.0/16 \
                                --gateway=172.20.0.1 \
                                my-bridge-network
                              

                              version: "2"
                              
                              services:
                               portainer:
                                 container_name: portainer
                                 image: portainer/portainer
                                 command: -H unix:///var/run/docker.sock
                                 hostname: portainer
                                 restart: always
                                 networks:
                                   bridge-network:
                                     ipv4_address: 172.20.0.2
                                 ports:
                                   - 9000:9000
                                   - 8000:8000
                                 volumes:
                                   - /var/run/docker.sock:/var/run/docker.sock
                                   - portainer_data:/data
                              
                              volumes:
                               portainer_data:
                              
                              networks:
                               bridge-network:
                                 external:
                                   name: my-bridge-network
                              

                              version: "2"
                              
                              services:
                                pihole:
                                  container_name: pihole
                                  image: pihole/pihole:latest
                                  hostname: pihole
                                  restart: unless-stopped
                                  network_mode: host
                                  dns:
                                    - 127.0.0.1
                                    - 192.168.178.1
                                  environment:
                                    TZ: 'Europe/Berlin'
                                    WEBPASSWORD: 'denkstewohl:P'
                                    DNS1: '192.168.178.1'
                                    DNS2: 'no'
                                    CONDITIONAL_FORWARDING: 'true'
                                    CONDITIONAL_FORWARDING_IP: '192.168.178.1'
                                    CONDITIONAL_FORWARDING_DOMAIN: 'fritz.box'
                              	  IPv6: 'true'
                                    ServerIP: '192.168.178.11'
                                    ServerIPv6: 'fd00::4db4:550f:97c6:aff4'
                                  volumes:
                                     - '/home/pi/pihole/pihole/:/etc/pihole/'
                                     - '/home/pi/pihole/dnsmasq.d/:/etc/dnsmasq.d/'
                              

                              version: "2"
                              
                              services:
                                iobroker:
                                  container_name: iobroker
                                  image: buanet/iobroker:latest
                                  hostname: iobroker
                                  restart: unless-stopped
                                  mac_address: 2A-F7-E1-A3-9D-C8
                                  dns:
                                    - 127.0.0.1
                                    - 192.168.178.1
                                  networks:
                                    iobroker-network:
                                      ipv4_address: 192.168.178.12
                                    bridge-network:
                                      ipv4_address: 172.20.0.3
                                  volumes:
                                    - "/home/pi/iobroker/iobrokerdata:/opt/iobroker"
                                  environment:
                                    - PACKAGES=vim nano build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
                                    - USBDEVICES=/dev/ttyACM0
                                  devices:
                                    - "/dev/ttyACM0:/dev/ttyACM0"
                              networks:
                                iobroker-network:
                                  external:
                                    name: iob_public
                                bridge-network:
                                  external:
                                    name: my-bridge-network
                              

                              version: "2"
                              
                              services:
                                influxdb:
                                  container_name: influxdb
                                  image: influxdb:latest
                                  hostname: InfluxDB
                                  restart: unless-stopped
                                  networks:
                                    bridge-network:
                                      ipv4_address: 172.20.0.4
                                  ports:
                                    - 8086:8086
                                  volumes:
                                    - /home/pi/influxdb/influxdb.conf:/etc/influxdb/influxdb.conf
                                    - /home/pi/influxdb/influxdb_data:/var/lib/influxdb
                                  environment:
                                    - TZ="Europe/Berlin"
                              
                              networks:
                                bridge-network:
                                  external:
                                    name: my-bridge-network
                              

                              version: "2"
                              
                              services:
                                mosquitto:
                                  container_name: mosquitto
                                  image: eclipse-mosquitto
                                  hostname: mosquitto
                                  restart: unless-stopped
                                  networks:
                                    bridge-network:
                                      ipv4_address: 172.20.0.5
                                  ports:
                                    - 1883:1883
                                    - 9001:9001
                                  volumes:
                                    - /home/pi/mosquitto/config:/mosquitto/config/:ro
                                    - /home/pi/mosquitto/log:/mosquitto/log
                                    - /home/pi/mosquitto/data:/mosquitto/data
                                  environment:
                                    - TZ="Europe/Berlin"
                              
                              networks:
                                bridge-network:
                                  external:
                                    name: my-bridge-network
                              

                              Vielleicht hilft es irgendwann mal jemanden weiter, der hier drüber stolpert.
                              Bevor das aber völlig ins OffTopic läuft soll es das diesbezüglich gewesen sein.

                              S Offline
                              S Offline
                              stevie77
                              schrieb am zuletzt editiert von
                              #1773

                              @FoodFighter sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:

                              Ich habe jetzt auch einfach mal für jeden Container ein vollumfassendes Compose-File gemacht.
                              Schaden kann es nicht, ich sehe es als Einstellungs-Backup.
                              Ich habe bewusst für jeden Container ein eigenes Compose-File erstellt zwecks Modularität.

                              Zur Vollständigkeit auch meine kompletten Docker-(Compose) Files:

                              $ docker network create \
                                --driver=macvlan \
                                --subnet=192.168.178.0/24 \
                                --ip-range=192.168.178.12/32 \
                                --gateway=192.168.178.1 \
                                iob_public
                              
                              $ docker network create \
                                --driver=bridge \
                                --subnet=172.20.0.0/16 \
                                --gateway=172.20.0.1 \
                                my-bridge-network
                              

                              Hatte mich davon inspiriert vorhin auch daran versucht das Netzwerk per Docker zu erzeugen (geht ja schneller als mit Portainer). Leider hat dein Beispiel erst bei mir funktioniert, als ich noch die Parent network card mit angegeben habe (vorher war der ioBroker nicht sichtbar, IP 224 nicht anpingbar).

                              docker network create --driver=macvlan --subnet=192.168.1.0/24 --ip-range=192.168.1.224/28 --gateway=192.168.1.1 -o parent=eth0 iobroker-network
                              

                              Macht auch Sinn, da dies in Portainer ein Pflichtfeld für MACVLAN ist. Kannst du mir erklären, warum das bei dir ja offensichtlich ohne funktioniert?

                              FoodFighterF 1 Antwort Letzte Antwort
                              0
                              • andreA andre

                                ÜBERARBEITUNG dieses Beitrags am 15.10.2020

                                Es ist viel Wasser die Elbe hinab geflossen und auch der ioBroker unter Docker hat sich verändert, sodass dieses Thema in seine Komplexität schlicht nicht (mehr) in einen Post passt.
                                Aus diesem Grund ist das Tutorial aus diesem Post nicht mehr aktuell und wird auch nicht weiter gepflegt.
                                Für weitere Informationen zum Thema ioBroker unter Docker (mit oder ohne Synology DiskStation) stelle ich euch ab heute eine eigene Website zur Verfügung welche ich Stück für Stück mit relevanten Informationen zum Thema erweitern werde. Dieses und weitere Tutorials findet ihr ab sofort unter:

                                https://smarthome.buanet.de

                                Direktlink:
                                (https://smarthome.buanet.de/2019/05/iobroker-unter-docker-auf-der-synology-diskstation-v3/)

                                Selbstverständlich bleibt dieser Threat hier als Support-Thread geöffnet. Es wird auch von niemanden verlangt die 2000+ Post zu lesen! Trotzdem hoffe ich. dass ihr den Thread vor dem Stellen der Frage einmal durchsucht.

                                @Glasfaser sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:

                                @andre

                                Danke andre , für deine kurze Stellungnahme ;)

                                @andre sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
                                Das kann man sicher nicht erwarten! Was ich aber beobachte ist, dass offenbar nur die Wenigsten wissen, dass man auch einen Thread durchsuchen kann. Denn dann werden aus 2100 Beiträgen plötzlich nur 20 oder 30 Posts zu einem bestimmten Thema... Immer noch
                                mühsam, aber das ist eben so!

                                Damit andere wissen was du meinst :

                                In User Einstellung aktivieren :

                                1.JPG

                                STRG + F

                                2.JPG

                                xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
                                Original Post vom 2. Februar 2017
                                xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

                                Kleine Wette:

                                Ich wette, dass es möglich ist ioBroker in weniger als zwei Minuten in Betrieb zu nehmen ohne einen einzigen Befehl in eine Kommandozeile einzutippen. :)

                                Spaß beiseite, ich habe mich in den vergangenen Tagen einmal ausgiebig mit dem Virtualisierungstool Docker beschäftigt. Herausgekommen ist dieses kleine aber feine Setup inkl. einem ioBroker-Docker-Image auf Basis von Debian. Vielleicht ja eine echte Alternative zu Einplatinen-Rechnern oder Dauerlauf-PCs….

                                Vorraussetzung:

                                • Unterstütze Synology DiskStation mit installiertem Docker Paket (https://www.synology.com/de-de/dsm/app_packages/Docker)

                                Dann kann es auch schon los gehen…

                                Schritt 1: Image herunterladen

                                Öffne den Bereich "Registrierung" in der Docker-Oberfläche auf des Synology DiskStation und gebe in das Suchfeld "iobroker" ein. Markiere das Image "buanet/iobroker" und klicke auf dne Downloas-Button. Das Image wird nun heruntergeladen.

                                914_01_pull_image.jpeg
                                Schritt 2: Container aus Image erstellen

                                Öffne den Bereich "Abbild" in der Docker-Oberfläche. Hier sollte nun das Image "buanet/iobroker:latest" zur Verfügung stehen. Wähle das Image aus und klicke auf den Starten-Button.

                                914_02_image_downloaded.jpeg
                                Es öffnet sich ein Wizard zum Erstellen eines Containers. Vergebe einen Containernamen und klicke auf den Button "Erweiterte Einstellungen".

                                914_03_container_wizard.jpeg
                                In den Erweiterten Einstellungen wähle das Kontrollkästchen "Automatischen Neustart aktivieren" aus um sicherzustellen, dass der Container sich im Fehlerfall selbstständig neu startet.

                                914_04_container_wizard_advanced1.jpeg
                                Unter Netzwerk wähle "Dasselbe Netzwerk wie Docker Host verwenden". Diese Einstellung sorgt dafür, dass siche ioBroker später "anfühlt" als würde es direkt auf der DiskStation laufen und vermeidet Probleme mit dem Hostnamen.

                                914_05_container_wizard_advanced2.jpeg
                                Schließe die Erweiterten Einstellungen mit OK, und klicke den Weiter-Button. In der Zusammenfassung sind nochmals alle Einstellungen aufgeführt. Klicke auf "Übernehmen".

                                914_06_container_wizard_end.jpeg
                                Schritt 3: Container überprüfen

                                Öffne den Bereich "Container" in der Docker-Oberfläche. Hier sollte nun der erstellte Container erscheinen. Prüfe ob der Container eingeschaltet ist und sich im Status "Läuft" befindet.

                                914_07_container_started.jpeg
                                Wähle den Container aus und klicke auf "Details".

                                914_08_container_details1.jpeg
                                Unter "Prozess" siehst du ob ioBroker erfolgreich gestartet ist. Falls dem so ist, sieht es ungefähr so aus:

                                914_09_container_details2.jpeg
                                Unter "Terminal" hast du direkten Zugriff auf die Kommandozeile des Containers. Sollte die Kommandozeile leer sein, klicke in das große graue Feld und drücke Enter. Nun sollte es wie folgt aussehen:

                                914_10_container_details3.jpeg
                                Über die Kommandozeile kannst du nun z.B. optionale Softwarepakete nachinstallieren (manche Adapter/ Funktionen benötigen das) oder auch mit den bekannten Befehlen deine ioBroker-Installation steuern, wie z.B. einen Neustart des Dienstes:

                                cd /opt/iobroker
                                iobroker stop
                                iobroker start
                                

                                Schritt 4: ioBroker Weboberfläche öffnen

                                Wenn der Container ordnungsgemäß eingerichtet und gestartet ist, sollte deine neue ioBroker-Installation nun über das Webinterface erreichbar sein. Öffne dazu einfach den entsprechenden Pfad in einem Webbrowser:

                                http://[name_oder_ip_der_diskstation]:8081
                                

                                Als kleines Goodie obendrauf, hier die Anleitung nochmal als kleines Video: https://www.youtube.com/watch?v=G-A3Q1Pq0YQ

                                Ich habe meine ioBroker Installation vor 2 Tagen auf Docker umgezogen. Bisher keine Probleme.

                                Aktuell habe ich noch kein automatisiertes Backup aktiv (muss noch ein Script schreiben). Manuell lässt sich der ioBroker Container ganz einfach über die Docker-Öberfläche sichern: Bereich "Container", ioBroker Container auswählen, unter "Einstellungen" > "Export" wählen und "Containerinhalt und -einstellungen exportieren". Dann lässt sich das Backup direkt auf der Synology ablegen.

                                MfG,

                                André

                                xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
                                Hinzugefügt am 08.03.2017
                                xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

                                Es gibt ein neues Docker-Image im Docker Hub (sobald es fertig generiert ist). Darin enthalten jetzt ein Fix für die Zeitzone. Es sollte ab sofort automatisch Europe/Berlin eingestellt sein.

                                Außerdem habe ich ein bisschen rum experimentiert und es jetzt ermöglicht auch Updates des Docker Images einfach einspielen zu können. Dazu liegt mein ioBroker-Verzeichnis jetzt direkt auf der Synology und wird nur in den Container gemountet. Dies ermöglicht es nun den Container aus zu tauschen und meine ioBroker-Installation bei zu behalten.

                                Das Ganze betrachte ich jetzt mal als Thema für "Fortgeschrittene" weshalb ich meine Anleitung jetzt auch ein wenig kürzer fasse.

                                Advanced Schritt 1.

                                ioBroker-Verzeichnis "erstellen" (oder halt ein eigenes Backup nehmen):

                                Damit wir ein lauffähiges ioBroker-Verzeichnis bekommen muss einmal ein Container nach der obigen Anleitung erstellt werden. Läuft der Container, kann man über die Kommandozeile einfach ioBroker stoppen und das komplette ioBroker-Verzeichnis aus dem Container heraus auf die Synology kopieren, z.B. in den Ordner /volume1/docker/iobroker.

                                Ich habe dazu den ioBroker-Ordner im Container in ein .tar-Verzeichnis gepackt, über ein gemountetes Verzeichnis auf die Synology kopiert und dort wieder entpackt.

                                Advanced Schritt 2.

                                Den Container aus Advanced Schritt 1 löschen und einen neuen erstellen (gerade gesehen, man muss nicht löschen, man kann auch bearbeiten). In Schritt zwei der "einfachen" Anleitung vor dem Schließen der erweiterten Einstellungen die Registerkarte "Volume" öffnen und den Pfad /opt/iobroker im Container auf den Pfad im Dateisystem der Synology (z.B. /docker/iobroker) mounten. So sieht das aus:

                                914_volume.png
                                Wichtig: Der Ordner auf der Synology muss sich in einem "gemeinsamen Ordner" befinden welcher über die Oberfläche des DiskStation angelegt worden ist. Bei mir ist das der Ordner "docker" (Im Filesystem der DiskStation also /volume1/docker).

                                Advanced Schritt 3.

                                Weiter wie in der Anleitung oben.

                                Wir sollten nun einen Docker-Container haben, der für das ioBroker-Verzeichnis auf das Dateisystem der DiskStation zugreift.

                                Falls es nun vielleicht ein Update des Images gibt, können wir das Image einfach herunter laden, den alten Container deaktivieren oder löschen und wie beschrieben einen neuen Container mit gemountetem Verzeichnis aus dem neuen Image erstellen. Die ioBroker Installation bleibt davon unberührt (auf der DiskStation).

                                J Offline
                                J Offline
                                jgee2
                                schrieb am zuletzt editiert von
                                #1774

                                Hi @andre und alle anderen ioBroker-Fans!

                                Seit letzter Woche habe ich den ioBroker auch auf einer Synology Diskstation innerhalb eines Docker Containers laufen, so wie André das auf seinem hervorragenden Blog beschrieben hat.

                                Heute habe ich versucht, NPM von Version 10 auf 12 zu aktualisieren, so wie in dem Blog beschrieben. Leider hat der Neustart nicht mehr geklappt.

                                Danach habe ich versucht, den JS-controller neu zu installieren, was zu dieser Fehlermeldung geführt hat:

                                root@xyz:/opt/iobroker# pkill io
                                root@xyz:/opt/iobroker# npm install iobroker.js-controller –-production
                                sudo: Die Audit-Nachricht kann nicht gesendet werden: Die Operation ist nicht erlaubt
                                npm ERR! code EINVALIDTAGNAME
                                npm ERR! Invalid tag name "–-production": Tags may not have any characters that encodeURIComponent encodes.
                                npm ERR! A complete log of this run can be found in:
                                npm ERR!     /opt/iobroker/.npm/_logs/2020-04-27T11_26_04_789Z-debug.log
                                

                                Das Log File zeigt folgendes:

                                0 info it worked if it ends with ok
                                1 verbose cli [ '/usr/bin/node',
                                1 verbose cli   '/usr/bin/npm',
                                1 verbose cli   'install',
                                1 verbose cli   'iobroker.js-controller',
                                1 verbose cli   '–-production' ]
                                2 info using npm@6.14.4
                                3 info using node@v10.20.1
                                4 verbose config Skipping project config: /opt/iobroker/.npmrc. (matches userconfig)
                                5 verbose npm-session b424af1cc19f8c6a
                                6 silly install loadCurrentTree
                                7 silly install readLocalPackageData
                                8 silly fetchPackageMetaData error for iobroker.js-controller@^3.0.19 install iobroker.js-controller –-production is not a legal HTTP header value
                                9 timing stage:rollbackFailedOptional Completed in 5ms
                                10 timing stage:runTopLevelLifecycles Completed in 2794ms
                                11 verbose stack Error: Invalid tag name "–-production": Tags may not have any characters that encodeURIComponent encodes.
                                11 verbose stack     at invalidTagName (/usr/lib/node_modules/npm/node_modules/npm-package-arg/npa.js:91:15)
                                11 verbose stack     at fromRegistry (/usr/lib/node_modules/npm/node_modules/npm-package-arg/npa.js:296:13)
                                11 verbose stack     at resolve (/usr/lib/node_modules/npm/node_modules/npm-package-arg/npa.js:81:12)
                                11 verbose stack     at npa (/usr/lib/node_modules/npm/node_modules/npm-package-arg/npa.js:52:10)
                                11 verbose stack     at /usr/lib/node_modules/npm/lib/install/deps.js:227:14
                                11 verbose stack     at /usr/lib/node_modules/npm/node_modules/slide/lib/async-map.js:52:35
                                11 verbose stack     at Array.forEach (<anonymous>)
                                11 verbose stack     at /usr/lib/node_modules/npm/node_modules/slide/lib/async-map.js:52:11
                                11 verbose stack     at Array.forEach (<anonymous>)
                                11 verbose stack     at asyncMap (/usr/lib/node_modules/npm/node_modules/slide/lib/async-map.js:51:8)
                                11 verbose stack     at exports.getAllMetadata (/usr/lib/node_modules/npm/lib/install/deps.js:224:3)
                                11 verbose stack     at Installer.loadArgMetadata (/usr/lib/node_modules/npm/lib/install.js:366:3)
                                11 verbose stack     at /usr/lib/node_modules/npm/lib/install.js:701:16
                                11 verbose stack     at BB.join.then (/usr/lib/node_modules/npm/lib/install/read-shrinkwrap.js:33:16)
                                11 verbose stack     at tryCatcher (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23)
                                11 verbose stack     at Promise._settlePromiseFromHandler (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:517:31)
                                12 verbose cwd /opt/iobroker
                                13 verbose Linux 3.10.105
                                14 verbose argv "/usr/bin/node" "/usr/bin/npm" "install" "iobroker.js-controller" "–-production"
                                15 verbose node v10.20.1
                                16 verbose npm  v6.14.4
                                17 error code EINVALIDTAGNAME
                                18 error Invalid tag name "–-production": Tags may not have any characters that encodeURIComponent encodes.
                                19 verbose exit [ 1, true ]
                                

                                Leider übersteigt dies meine Kenntnisse. Kann mir jemand helfen oder einen Tipp geben?

                                Viele Grüße

                                Jo

                                KnallochseK GlasfaserG andreA 3 Antworten Letzte Antwort
                                0
                                • J jgee2

                                  Hi @andre und alle anderen ioBroker-Fans!

                                  Seit letzter Woche habe ich den ioBroker auch auf einer Synology Diskstation innerhalb eines Docker Containers laufen, so wie André das auf seinem hervorragenden Blog beschrieben hat.

                                  Heute habe ich versucht, NPM von Version 10 auf 12 zu aktualisieren, so wie in dem Blog beschrieben. Leider hat der Neustart nicht mehr geklappt.

                                  Danach habe ich versucht, den JS-controller neu zu installieren, was zu dieser Fehlermeldung geführt hat:

                                  root@xyz:/opt/iobroker# pkill io
                                  root@xyz:/opt/iobroker# npm install iobroker.js-controller –-production
                                  sudo: Die Audit-Nachricht kann nicht gesendet werden: Die Operation ist nicht erlaubt
                                  npm ERR! code EINVALIDTAGNAME
                                  npm ERR! Invalid tag name "–-production": Tags may not have any characters that encodeURIComponent encodes.
                                  npm ERR! A complete log of this run can be found in:
                                  npm ERR!     /opt/iobroker/.npm/_logs/2020-04-27T11_26_04_789Z-debug.log
                                  

                                  Das Log File zeigt folgendes:

                                  0 info it worked if it ends with ok
                                  1 verbose cli [ '/usr/bin/node',
                                  1 verbose cli   '/usr/bin/npm',
                                  1 verbose cli   'install',
                                  1 verbose cli   'iobroker.js-controller',
                                  1 verbose cli   '–-production' ]
                                  2 info using npm@6.14.4
                                  3 info using node@v10.20.1
                                  4 verbose config Skipping project config: /opt/iobroker/.npmrc. (matches userconfig)
                                  5 verbose npm-session b424af1cc19f8c6a
                                  6 silly install loadCurrentTree
                                  7 silly install readLocalPackageData
                                  8 silly fetchPackageMetaData error for iobroker.js-controller@^3.0.19 install iobroker.js-controller –-production is not a legal HTTP header value
                                  9 timing stage:rollbackFailedOptional Completed in 5ms
                                  10 timing stage:runTopLevelLifecycles Completed in 2794ms
                                  11 verbose stack Error: Invalid tag name "–-production": Tags may not have any characters that encodeURIComponent encodes.
                                  11 verbose stack     at invalidTagName (/usr/lib/node_modules/npm/node_modules/npm-package-arg/npa.js:91:15)
                                  11 verbose stack     at fromRegistry (/usr/lib/node_modules/npm/node_modules/npm-package-arg/npa.js:296:13)
                                  11 verbose stack     at resolve (/usr/lib/node_modules/npm/node_modules/npm-package-arg/npa.js:81:12)
                                  11 verbose stack     at npa (/usr/lib/node_modules/npm/node_modules/npm-package-arg/npa.js:52:10)
                                  11 verbose stack     at /usr/lib/node_modules/npm/lib/install/deps.js:227:14
                                  11 verbose stack     at /usr/lib/node_modules/npm/node_modules/slide/lib/async-map.js:52:35
                                  11 verbose stack     at Array.forEach (<anonymous>)
                                  11 verbose stack     at /usr/lib/node_modules/npm/node_modules/slide/lib/async-map.js:52:11
                                  11 verbose stack     at Array.forEach (<anonymous>)
                                  11 verbose stack     at asyncMap (/usr/lib/node_modules/npm/node_modules/slide/lib/async-map.js:51:8)
                                  11 verbose stack     at exports.getAllMetadata (/usr/lib/node_modules/npm/lib/install/deps.js:224:3)
                                  11 verbose stack     at Installer.loadArgMetadata (/usr/lib/node_modules/npm/lib/install.js:366:3)
                                  11 verbose stack     at /usr/lib/node_modules/npm/lib/install.js:701:16
                                  11 verbose stack     at BB.join.then (/usr/lib/node_modules/npm/lib/install/read-shrinkwrap.js:33:16)
                                  11 verbose stack     at tryCatcher (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23)
                                  11 verbose stack     at Promise._settlePromiseFromHandler (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:517:31)
                                  12 verbose cwd /opt/iobroker
                                  13 verbose Linux 3.10.105
                                  14 verbose argv "/usr/bin/node" "/usr/bin/npm" "install" "iobroker.js-controller" "–-production"
                                  15 verbose node v10.20.1
                                  16 verbose npm  v6.14.4
                                  17 error code EINVALIDTAGNAME
                                  18 error Invalid tag name "–-production": Tags may not have any characters that encodeURIComponent encodes.
                                  19 verbose exit [ 1, true ]
                                  

                                  Leider übersteigt dies meine Kenntnisse. Kann mir jemand helfen oder einen Tipp geben?

                                  Viele Grüße

                                  Jo

                                  KnallochseK Offline
                                  KnallochseK Offline
                                  Knallochse
                                  schrieb am zuletzt editiert von Knallochse
                                  #1775

                                  @jgee2 Ich glaube, nach dem Update von NPM musst du einen reinstall machen. Such mal nach reinstall.sh

                                  HM&HMIP über 100 Geräte + IoBroker auf DS918+ uvm.

                                  1 Antwort Letzte Antwort
                                  0
                                  • J jgee2

                                    Hi @andre und alle anderen ioBroker-Fans!

                                    Seit letzter Woche habe ich den ioBroker auch auf einer Synology Diskstation innerhalb eines Docker Containers laufen, so wie André das auf seinem hervorragenden Blog beschrieben hat.

                                    Heute habe ich versucht, NPM von Version 10 auf 12 zu aktualisieren, so wie in dem Blog beschrieben. Leider hat der Neustart nicht mehr geklappt.

                                    Danach habe ich versucht, den JS-controller neu zu installieren, was zu dieser Fehlermeldung geführt hat:

                                    root@xyz:/opt/iobroker# pkill io
                                    root@xyz:/opt/iobroker# npm install iobroker.js-controller –-production
                                    sudo: Die Audit-Nachricht kann nicht gesendet werden: Die Operation ist nicht erlaubt
                                    npm ERR! code EINVALIDTAGNAME
                                    npm ERR! Invalid tag name "–-production": Tags may not have any characters that encodeURIComponent encodes.
                                    npm ERR! A complete log of this run can be found in:
                                    npm ERR!     /opt/iobroker/.npm/_logs/2020-04-27T11_26_04_789Z-debug.log
                                    

                                    Das Log File zeigt folgendes:

                                    0 info it worked if it ends with ok
                                    1 verbose cli [ '/usr/bin/node',
                                    1 verbose cli   '/usr/bin/npm',
                                    1 verbose cli   'install',
                                    1 verbose cli   'iobroker.js-controller',
                                    1 verbose cli   '–-production' ]
                                    2 info using npm@6.14.4
                                    3 info using node@v10.20.1
                                    4 verbose config Skipping project config: /opt/iobroker/.npmrc. (matches userconfig)
                                    5 verbose npm-session b424af1cc19f8c6a
                                    6 silly install loadCurrentTree
                                    7 silly install readLocalPackageData
                                    8 silly fetchPackageMetaData error for iobroker.js-controller@^3.0.19 install iobroker.js-controller –-production is not a legal HTTP header value
                                    9 timing stage:rollbackFailedOptional Completed in 5ms
                                    10 timing stage:runTopLevelLifecycles Completed in 2794ms
                                    11 verbose stack Error: Invalid tag name "–-production": Tags may not have any characters that encodeURIComponent encodes.
                                    11 verbose stack     at invalidTagName (/usr/lib/node_modules/npm/node_modules/npm-package-arg/npa.js:91:15)
                                    11 verbose stack     at fromRegistry (/usr/lib/node_modules/npm/node_modules/npm-package-arg/npa.js:296:13)
                                    11 verbose stack     at resolve (/usr/lib/node_modules/npm/node_modules/npm-package-arg/npa.js:81:12)
                                    11 verbose stack     at npa (/usr/lib/node_modules/npm/node_modules/npm-package-arg/npa.js:52:10)
                                    11 verbose stack     at /usr/lib/node_modules/npm/lib/install/deps.js:227:14
                                    11 verbose stack     at /usr/lib/node_modules/npm/node_modules/slide/lib/async-map.js:52:35
                                    11 verbose stack     at Array.forEach (<anonymous>)
                                    11 verbose stack     at /usr/lib/node_modules/npm/node_modules/slide/lib/async-map.js:52:11
                                    11 verbose stack     at Array.forEach (<anonymous>)
                                    11 verbose stack     at asyncMap (/usr/lib/node_modules/npm/node_modules/slide/lib/async-map.js:51:8)
                                    11 verbose stack     at exports.getAllMetadata (/usr/lib/node_modules/npm/lib/install/deps.js:224:3)
                                    11 verbose stack     at Installer.loadArgMetadata (/usr/lib/node_modules/npm/lib/install.js:366:3)
                                    11 verbose stack     at /usr/lib/node_modules/npm/lib/install.js:701:16
                                    11 verbose stack     at BB.join.then (/usr/lib/node_modules/npm/lib/install/read-shrinkwrap.js:33:16)
                                    11 verbose stack     at tryCatcher (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23)
                                    11 verbose stack     at Promise._settlePromiseFromHandler (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:517:31)
                                    12 verbose cwd /opt/iobroker
                                    13 verbose Linux 3.10.105
                                    14 verbose argv "/usr/bin/node" "/usr/bin/npm" "install" "iobroker.js-controller" "–-production"
                                    15 verbose node v10.20.1
                                    16 verbose npm  v6.14.4
                                    17 error code EINVALIDTAGNAME
                                    18 error Invalid tag name "–-production": Tags may not have any characters that encodeURIComponent encodes.
                                    19 verbose exit [ 1, true ]
                                    

                                    Leider übersteigt dies meine Kenntnisse. Kann mir jemand helfen oder einen Tipp geben?

                                    Viele Grüße

                                    Jo

                                    GlasfaserG Offline
                                    GlasfaserG Offline
                                    Glasfaser
                                    schrieb am zuletzt editiert von Glasfaser
                                    #1776

                                    @jgee2 sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:

                                    Invalid tag name "–-production":

                                    Mache es so ...

                                    vorher mal ... schadet nicht

                                    apt-get update
                                    apt-get upgrade
                                    
                                    curl -sL https://deb.nodesource.com/setup_12.x | bash -
                                    apt install -y nodejs
                                    npm rebuild
                                    

                                    Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                                    J 1 Antwort Letzte Antwort
                                    0
                                    • GlasfaserG Glasfaser

                                      @jgee2 sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:

                                      Invalid tag name "–-production":

                                      Mache es so ...

                                      vorher mal ... schadet nicht

                                      apt-get update
                                      apt-get upgrade
                                      
                                      curl -sL https://deb.nodesource.com/setup_12.x | bash -
                                      apt install -y nodejs
                                      npm rebuild
                                      
                                      J Offline
                                      J Offline
                                      jgee2
                                      schrieb am zuletzt editiert von
                                      #1777

                                      @Glasfaser

                                      danke für den Tipp. Leider habe ich den gleicher Fehler immer noch. Vielleicht mache ich aber was grundsätzlich falsch. Ich bin so vorgegangen:

                                      • per SSH als root auf die Synology
                                      • per "docker exec -it <container name> /bin/bash" in den Container
                                      • dort wie von dir beschrieben die Kommandos abgesetzt.
                                      • danach iobroker per "gosu iobroker node node_modules/iobroker.js-controller/controller.js" neugestartet.

                                      Das Ergebnis ist:

                                      host.xyz check instance "system.adapter.admin.0" for host "xyz"
                                      host.xyz check instance "system.adapter.discovery.0" for host "xyz"
                                      host.xyz check instance "system.adapter.info.0" for host "xyz"
                                      host.xyz check instance "system.adapter.smartmeter.0" for host "xyz"
                                      host.xyz check instance "system.adapter.knx.0" for host "xyz"
                                      host.xyz check instance "system.adapter.influxdb.0" for host "xyz"
                                      host.xyz check instance "system.adapter.robonect.0" for host "xyz"
                                      host.xyz check instance "system.adapter.sma-speedwire.0" for host "xyz"
                                      host.xyz check instance "system.adapter.javascript.0" for host "xyz"
                                      host.xyz check instance "system.adapter.feiertage.0" for host "xyz"
                                      host.xyz check instance "system.adapter.web.0" for host "xyz"
                                      host.xyz check instance "system.adapter.sonos.0" for host "xyz"
                                      host.xyz check instance "system.adapter.unifi.0" for host "xyz"
                                      host.xyz check instance "system.adapter.vis.0" for host "xyz"
                                      host.xyz check instance "system.adapter.vaillant.0" for host "xyz"
                                      host.xyz check instance "system.adapter.alexa2.0" for host "xyz"
                                      host.xyz check instance "system.adapter.iot.0" for host "xyz"
                                      ================================== > LOG REDIRECT system.adapter.javascript.0 => false [Process stopped]
                                      ================================== > LOG REDIRECT system.adapter.javascript.0 => false [system.adapter.javascript.0.logging]
                                      

                                      Mach ich was grundsätzlich falsch?

                                      @Knallochse, das script habe ich leider nicht finden können.

                                      1 Antwort Letzte Antwort
                                      0
                                      • S stevie77

                                        @FoodFighter sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:

                                        Ich habe jetzt auch einfach mal für jeden Container ein vollumfassendes Compose-File gemacht.
                                        Schaden kann es nicht, ich sehe es als Einstellungs-Backup.
                                        Ich habe bewusst für jeden Container ein eigenes Compose-File erstellt zwecks Modularität.

                                        Zur Vollständigkeit auch meine kompletten Docker-(Compose) Files:

                                        $ docker network create \
                                          --driver=macvlan \
                                          --subnet=192.168.178.0/24 \
                                          --ip-range=192.168.178.12/32 \
                                          --gateway=192.168.178.1 \
                                          iob_public
                                        
                                        $ docker network create \
                                          --driver=bridge \
                                          --subnet=172.20.0.0/16 \
                                          --gateway=172.20.0.1 \
                                          my-bridge-network
                                        

                                        Hatte mich davon inspiriert vorhin auch daran versucht das Netzwerk per Docker zu erzeugen (geht ja schneller als mit Portainer). Leider hat dein Beispiel erst bei mir funktioniert, als ich noch die Parent network card mit angegeben habe (vorher war der ioBroker nicht sichtbar, IP 224 nicht anpingbar).

                                        docker network create --driver=macvlan --subnet=192.168.1.0/24 --ip-range=192.168.1.224/28 --gateway=192.168.1.1 -o parent=eth0 iobroker-network
                                        

                                        Macht auch Sinn, da dies in Portainer ein Pflichtfeld für MACVLAN ist. Kannst du mir erklären, warum das bei dir ja offensichtlich ohne funktioniert?

                                        FoodFighterF Offline
                                        FoodFighterF Offline
                                        FoodFighter
                                        schrieb am zuletzt editiert von
                                        #1778

                                        @stevie77 said in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:

                                        Macht auch Sinn, da dies in Portainer ein Pflichtfeld für MACVLAN ist. Kannst du mir erklären, warum das bei dir ja offensichtlich ohne funktioniert?

                                        Ja macht Sinn und ist auch richtig so - das ist mir durch die Lappen gegangen.
                                        Danke für den Hinweis - Ich hab es oben korrigiert

                                        1 Antwort Letzte Antwort
                                        0
                                        • J jgee2

                                          Hi @andre und alle anderen ioBroker-Fans!

                                          Seit letzter Woche habe ich den ioBroker auch auf einer Synology Diskstation innerhalb eines Docker Containers laufen, so wie André das auf seinem hervorragenden Blog beschrieben hat.

                                          Heute habe ich versucht, NPM von Version 10 auf 12 zu aktualisieren, so wie in dem Blog beschrieben. Leider hat der Neustart nicht mehr geklappt.

                                          Danach habe ich versucht, den JS-controller neu zu installieren, was zu dieser Fehlermeldung geführt hat:

                                          root@xyz:/opt/iobroker# pkill io
                                          root@xyz:/opt/iobroker# npm install iobroker.js-controller –-production
                                          sudo: Die Audit-Nachricht kann nicht gesendet werden: Die Operation ist nicht erlaubt
                                          npm ERR! code EINVALIDTAGNAME
                                          npm ERR! Invalid tag name "–-production": Tags may not have any characters that encodeURIComponent encodes.
                                          npm ERR! A complete log of this run can be found in:
                                          npm ERR!     /opt/iobroker/.npm/_logs/2020-04-27T11_26_04_789Z-debug.log
                                          

                                          Das Log File zeigt folgendes:

                                          0 info it worked if it ends with ok
                                          1 verbose cli [ '/usr/bin/node',
                                          1 verbose cli   '/usr/bin/npm',
                                          1 verbose cli   'install',
                                          1 verbose cli   'iobroker.js-controller',
                                          1 verbose cli   '–-production' ]
                                          2 info using npm@6.14.4
                                          3 info using node@v10.20.1
                                          4 verbose config Skipping project config: /opt/iobroker/.npmrc. (matches userconfig)
                                          5 verbose npm-session b424af1cc19f8c6a
                                          6 silly install loadCurrentTree
                                          7 silly install readLocalPackageData
                                          8 silly fetchPackageMetaData error for iobroker.js-controller@^3.0.19 install iobroker.js-controller –-production is not a legal HTTP header value
                                          9 timing stage:rollbackFailedOptional Completed in 5ms
                                          10 timing stage:runTopLevelLifecycles Completed in 2794ms
                                          11 verbose stack Error: Invalid tag name "–-production": Tags may not have any characters that encodeURIComponent encodes.
                                          11 verbose stack     at invalidTagName (/usr/lib/node_modules/npm/node_modules/npm-package-arg/npa.js:91:15)
                                          11 verbose stack     at fromRegistry (/usr/lib/node_modules/npm/node_modules/npm-package-arg/npa.js:296:13)
                                          11 verbose stack     at resolve (/usr/lib/node_modules/npm/node_modules/npm-package-arg/npa.js:81:12)
                                          11 verbose stack     at npa (/usr/lib/node_modules/npm/node_modules/npm-package-arg/npa.js:52:10)
                                          11 verbose stack     at /usr/lib/node_modules/npm/lib/install/deps.js:227:14
                                          11 verbose stack     at /usr/lib/node_modules/npm/node_modules/slide/lib/async-map.js:52:35
                                          11 verbose stack     at Array.forEach (<anonymous>)
                                          11 verbose stack     at /usr/lib/node_modules/npm/node_modules/slide/lib/async-map.js:52:11
                                          11 verbose stack     at Array.forEach (<anonymous>)
                                          11 verbose stack     at asyncMap (/usr/lib/node_modules/npm/node_modules/slide/lib/async-map.js:51:8)
                                          11 verbose stack     at exports.getAllMetadata (/usr/lib/node_modules/npm/lib/install/deps.js:224:3)
                                          11 verbose stack     at Installer.loadArgMetadata (/usr/lib/node_modules/npm/lib/install.js:366:3)
                                          11 verbose stack     at /usr/lib/node_modules/npm/lib/install.js:701:16
                                          11 verbose stack     at BB.join.then (/usr/lib/node_modules/npm/lib/install/read-shrinkwrap.js:33:16)
                                          11 verbose stack     at tryCatcher (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23)
                                          11 verbose stack     at Promise._settlePromiseFromHandler (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:517:31)
                                          12 verbose cwd /opt/iobroker
                                          13 verbose Linux 3.10.105
                                          14 verbose argv "/usr/bin/node" "/usr/bin/npm" "install" "iobroker.js-controller" "–-production"
                                          15 verbose node v10.20.1
                                          16 verbose npm  v6.14.4
                                          17 error code EINVALIDTAGNAME
                                          18 error Invalid tag name "–-production": Tags may not have any characters that encodeURIComponent encodes.
                                          19 verbose exit [ 1, true ]
                                          

                                          Leider übersteigt dies meine Kenntnisse. Kann mir jemand helfen oder einen Tipp geben?

                                          Viele Grüße

                                          Jo

                                          andreA Offline
                                          andreA Offline
                                          andre
                                          Developer
                                          schrieb am zuletzt editiert von
                                          #1779

                                          @jgee2
                                          Hallo Jo,
                                          ich glaube du bringst da irgendwas durcheinander...

                                          @jgee2 sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:

                                          Heute habe ich versucht, NPM von Version 10 auf 12 zu aktualisieren, so wie in dem Blog beschrieben. Leider hat der Neustart nicht mehr geklappt.

                                          Was hast du jetzt genau vor? Du schreibst "NPM" aktualisieren, Nimmst die "Version 10 auf 12" (Versionen von Node) und postest die Fehlermeldungen vom Update des js-controllers... Das sind 3 völlig unterschiedliche Dinge...

                                          In meiner Knowledgebase ist das Update vom js-controller beschrieben. Da wäre das Update dann aktuell von Version 2 auf 3. Das wäre dann das Update was du unter Umständen auch im Admin des ioBrokers angezeigt bekommst...

                                          Ich ignoriere jetzt einfach mal "NPM" und "Version 10 auf 12" und beziehe mich auf deine Fehlermeldung beim Ausführen des "npm install..."

                                          Deine Fehlermeldung "sudo: Die Audit-Nachricht kann nicht gesendet werden: Die Operation ist nicht erlaubt" ist nicht neu. Hast du die mal durch die Suche in diesem Thread gejagt?
                                          Das ist ein Thema was hier alle paar Monate wieder aufschlägt.
                                          Es handelt sich um einen bekannten Bug der in Erscheinung tritt wenn man den Container auf einer Synology DS ausführt und das "Host-Netzwerk" verwendet. Synology verwendet in der aktuellen DSM Version einen veralteten Linux Kernel. In diesem Kernel gibt es einen Bug. Der verhindert das Ausführen von sudo innerhalb eines Containers der im Host Mode läuft.... Leider wird beim "npm install..." innerhalb der routine "sudo" aufgerufen. Resultat: Die Installation schlägt fehl.

                                          Eine Workaround für das Update des js-controllers im ioBroker-Container wäre folgendes (vorausgesetzt du hast dein ioBroker-Verzeichnis außerhalb des Containers liegen und in den Container gemountet):

                                          1. Backup machen! (z.B. per duplizieren des ioBroker-Verzeichnisses oder über "iobroker backup" und sichern des Backup-Files)
                                          2. Container löschen
                                          3. Container mit Bridge Netzwerk anstatt Host erstellen (restliche Config natürlich gleich)
                                          4. Update des js-controllers über Kommandozeile durchführen ("pkill io", "npm install..")
                                          5. Container löschen
                                          6. Neuen Container mit Host Netzwerk erstellen

                                          Ich hoffe das hilft dir weiter.

                                          MfG,
                                          André

                                          Bitte keine Support-Fragen per PN! Nutzt die öffentliche Kanäle damit auch andere von den Antworten profitieren können!

                                          J 1 Antwort Letzte Antwort
                                          -1
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          951

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe