Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [HowTo] ioBroker unter Docker auf Synology DiskStation

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [HowTo] ioBroker unter Docker auf Synology DiskStation

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      ts020339 last edited by ts020339

      @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 Reply Last reply Reply Quote 0
      • FoodFighter
        FoodFighter last edited by

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

        1 Reply Last reply Reply Quote 0
        • S
          stevie77 last edited by

          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...

          FoodFighter 1 Reply Last reply Reply Quote 0
          • Q
            qosi @qosi last edited by

            @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 Reply Last reply Reply Quote 0
            • FoodFighter
              FoodFighter last edited by 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 1 Reply Last reply Reply Quote 0
              • FoodFighter
                FoodFighter @stevie77 last edited by

                @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 Reply Last reply Reply Quote 0
                • S
                  stevie77 @FoodFighter last edited by

                  @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?

                  FoodFighter 1 Reply Last reply Reply Quote 0
                  • J
                    jgee2 @andre last edited by

                    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

                    Knallochse Glasfaser andre 3 Replies Last reply Reply Quote 0
                    • Knallochse
                      Knallochse @jgee2 last edited by Knallochse

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

                      1 Reply Last reply Reply Quote 0
                      • Glasfaser
                        Glasfaser @jgee2 last edited by 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 1 Reply Last reply Reply Quote 0
                        • J
                          jgee2 @Glasfaser last edited by

                          @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 Reply Last reply Reply Quote 0
                          • FoodFighter
                            FoodFighter @stevie77 last edited by

                            @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 Reply Last reply Reply Quote 0
                            • andre
                              andre Developer @jgee2 last edited by

                              @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é

                              J 1 Reply Last reply Reply Quote -1
                              • Q
                                qosi last edited by

                                Hallo noch mal,

                                habe das Gefühl meine Frage/Problem geht irgendwie unter, ich versuche es noch einmal, jedoch diesmal nicht als Reply auf ein Posting.
                                Hoffe mit diesem letzten Versuch auf mein Problem aufmerksam zu machen, ggf. poste ich hier auch falsch...k.a...😕

                                Ich wäre super Dankbar wenn jemand hier auf eine Quelle verweisen könnte wo ich nachlesen kann, oder ggf. anhand meiner Infos die Lösung kennt.

                                Hier der Post um den es geht:
                                https://forum.iobroker.net/post/419686

                                Vielen Dank!🖖

                                andre 1 Reply Last reply Reply Quote 0
                                • andre
                                  andre Developer @qosi last edited by andre

                                  @qosi
                                  Hallo,
                                  hast du denn beim Erstellen deines Containers die Capabilities gesetzt?
                                  Hier ein paar Infos: Docker Doku.
                                  Und hier findet man das im Portainer:
                                  d93930b0-f8ca-4a41-b123-822b10ff228f-image.png
                                  Vermutlich fehlt dir der "NET_ADMIN".
                                  Ob noch Weiteres zu tun ist kann ich nicht genau sagen. Ich verwende den Adapter nur auf einem Raspberry-Multihost-Slave...

                                  MfG,
                                  André

                                  Q 1 Reply Last reply Reply Quote 0
                                  • Q
                                    qosi @andre last edited by qosi

                                    @andre
                                    Vielen Dank, habe die --privileged hinzugefügt, erst im Portainer eingeschaltet:
                                    f522277e-8f7e-4880-8640-1a7910629f8c-image.png
                                    Brachte nix...dann noch in CMD hinzugefügt...
                                    8a4cc906-e11e-4bb9-8f79-b03ea2a79ceb-image.png
                                    Brachte auch nichts...
                                    Dann noch mehr von den capabilities eingeschaltet, NET_Admin war schon an...
                                    fb1eac29-a434-4fe1-979f-6b3988808e9b-image.png

                                    Das sind meine Pakete

                                    build-essential libcairo2-dev libcap2-bin libpango1.0-dev libjpeg-dev librsvg2-dev arp-scan bluetooth bluez libbluetooth-dev libudev-dev net-tools net-ping nano
                                    

                                    Leider will er einfach nicht...

                                    radar2.0	2020-04-27 23:51:48.223	info	(643) radar2 set to scan every 20 seconds and printers every 720 minutes.
                                    radar2.0	2020-04-27 23:51:48.222	info	(643) arp-scan will use the following interfaces: [ 'eth0' ]
                                    radar2.0	2020-04-27 23:51:48.221	info	(643) Remove name end for host names: .fritz.box
                                    radar2.0	2020-04-27 23:51:48.221	info	(643) use known IP list: [ '1.1.1.1' ]
                                    radar2.0	2020-04-27 23:51:48.220	info	(643) use known BT list: [ '01:12:23:34:45:56' ]
                                    radar2.0	2020-04-27 23:51:48.219	info	(643) radar2 set to flag items away if they are not seen for 2 minutes
                                    radar2.0	2020-04-27 23:51:48.218	warn	(643) node-bluetooth not found!
                                    radar2.0	2020-04-27 23:51:47.975	warn	(643) Noble not available, Error: { Error: EAFNOSUPPORT, Address family not supported by protocolat new Hci (/opt/iobroker/node_modules/@abandonware/noble/lib/hci-socket/hci.js:74:18)at new NobleBindi
                                    radar2.0	2020-04-27 23:51:47.024	info	(643) Adapter disconnected and stopped with dostop(false) and callback(true)
                                    radar2.0	2020-04-27 23:51:47.023	error	(643) 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-27 23:51:47.022	error	(643) uncaught exception: bind EACCES 0.0.0.0:67
                                    radar2.0	2020-04-27 23:51:46.850	info	(643) net-ping not available! Will try to use normal ping!
                                    radar2.0	2020-04-27 23:51:46.815	info	(643) radar2 initialization started...
                                    radar2.0	2020-04-27 23:51:46.796	warn	(643) adapter.objects.getObjectList is deprecated, and will be removed in the future. Please use adapter.getObjectList/Async. Report this to Developer!
                                    radar2.0	2020-04-27 23:51:46.731	info	(643) starting. Version 1.0.9 in /opt/iobroker/node_modules/iobroker.radar2, node: v10.20.1, js-controller: 3.0.19
                                    

                                    Hab den js-controller auf 3.0.19 gebracht, vielleicht bin ich mit den aktuellen node usw. Versionen zu aktuell...?
                                    Ich habe den Container erst mal da, der Mount ist auch da, werde weiter stöbern dazu und auf neues Update hoffen.

                                    Im Moment wieder zurück auf dem RPI und hoffen, dass die SD Karte wieder mal eine Zeitlang hält.
                                    Danke für die Doku, werde die mir noch mal in Detail reinziehen.

                                    Hier vielleicht noch der Log vom Container start...log.txt

                                    andre D 2 Replies Last reply Reply Quote 0
                                    • andre
                                      andre Developer @qosi last edited by

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

                                      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)

                                      Hallo,
                                      für mich sieht das soweit eigentlich gut aus. In der einzigen Fehlermeldung die ich finden konnte meckert er an, dass er den Port 67 nicht öffnen kann. Hast du die Fehlermeldung mal durch die Forensuche gejagt?

                                      Ich empfehle dir da mal diesen Thread:
                                      https://forum.iobroker.net/topic/19794/adapter-neuer-radar2-adapter

                                      MfG,
                                      André

                                      1 Reply Last reply Reply Quote 0
                                      • D
                                        duffbeer2000 @qosi last edited by duffbeer2000

                                        @qosi Sobald du den Privileged mode aktiviert hast interessieren die capabilities nicht mehr da sie dann alle aktiviert sind. Sicherheitstechnisch solltest du den Privileged mode deaktivieren und nur die benötigten capabilities aktivieren. Ich kann das nicht oft genug sagen.

                                        Wenn ein externer angreifer in einen Container eindringt der im Privileged mode läuft, kann er auf eurem Host (Diskstation) sehr großen Schaden anrichten, wie z.B. alle Platten löschen.

                                        Und nun zum eigentlichen Problem:

                                        • schalte den Container aus
                                        • Da du vorher ohne priviledged ausgekommen bist schalt es wieder aus
                                        • dreh die capabilities wieder auf den Ursprungszustand zurück
                                        • aktiviere folgende capabilities zusätzlich zu den Standardmäßigen.: "NET_ADMIN" "NET_RAW" und "NET_BIND_SERVICE"
                                        • Starte den Container wieder
                                        • Führe in der Console folgende Befehle aus:
                                        gosu root setcap cap_net_admin,cap_net_raw,cap_net_bind_service=+eip $(eval readlink -f `which arp-scan`)
                                        gosu root setcap cap_net_admin,cap_net_raw,cap_net_bind_service=+eip $(eval readlink -f `which node`)
                                        gosu root setcap cap_net_admin,cap_net_raw,cap_net_bind_service=+eip $(eval readlink -f `which arp`)
                                        gosu root setcap cap_net_admin,cap_net_raw,cap_net_bind_service=+eip $(eval readlink -f `which hcitool`)
                                        gosu root setcap cap_net_admin,cap_net_raw,cap_net_bind_service=+eip $(eval readlink -f `which hciconfig`)
                                        gosu root setcap cap_net_admin,cap_net_raw,cap_net_bind_service=+eip $(eval readlink -f `which l2ping`)
                                        
                                        • Starte den Container neu
                                        Q 1 Reply Last reply Reply Quote 0
                                        • J
                                          jgee2 @andre last edited by

                                          @andre,

                                          Hi André,

                                          ja, da habe ich viel durcheinander gebracht, bitte entschuldige. Versucht hatte ich tatsächlich ein Update des js-controllers, das dann fehlgeschlagen ist. Nochmals danke für deine Hilfe.

                                          Leider bekomme ich auch mit deiner Anleitung hier den Container nicht zum Laufen. Weder im Bridge- noch im Host-Modus. Ich habe daraufhin einen neuen ("nackten") Container installiert und darin mein Backup mit "iobroker restore 0" hergestellt. Sobald das Backup wiederhergestellt wurde, funktioniert auch der Container nicht mehr. Ich scheine mir da richtig was kaputt gemacht zu haben.

                                          Ich habe bereits begonnen, alles neu aufsetzen, das ist soweit lediglich Arbeit... Nur einige meiner Javascripts würde ich gerne wiederherstellen, da da viel Arbeit reingeflossen ist. Weißt du (oder sonst jemand), wie ich aus dem ioBroker Backup einzelne Teile, nämlich die eigenen Javascript-Dateien, wiederherstellen kann? Soweit ich das sehen kann, liegen die alle in einer ziemlich großen JSON-Datei, in meinem Fall 8 MB. Da hat mein Atom Editor große Schwierigkeiten mit...

                                          Beste Grüße

                                          Jo

                                          D RK62 2 Replies Last reply Reply Quote 0
                                          • D
                                            duffbeer2000 @jgee2 last edited by duffbeer2000

                                            @jgee2 Probier mal folgendes bevor du einzelne Sachen wiederherstellst:

                                            • erstelle dir ein neues iobroker_data-Verzeichnis (kannst auch anders nennen)
                                            • lege in das neue iobroker_data-Verzeichnis das Backup-File
                                            • erstelle dir nochmal einen nackten Container mit dem neuen iobroker_data-Verzeichnis
                                            • starte den Container

                                            Jetzt sollte automatisch ein Restore laufen, das dauert einige Zeit bis es komplett abgeschlossen ist. Je nach Anzahl an Adaptern bis zu 2 Stunden oder mehr.

                                            Und heb dir das alte iobroker_data-Verzeichnis auf, dann kann man wenns nicht funktioniert auch damit weiter machen.

                                            J 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

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

                                            846
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            buanet diskstation docker iobroker synology
                                            248
                                            2854
                                            1436616
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo