Files
ioBroker.docker/docs/README_docker_hub_iobroker.md
2023-09-26 22:16:17 +02:00

11 KiB

Note: The image provided as iobroker/iobroker is a mirror of buanet/iobroker

Release Pre-Release) GitHub Workflow Status Github Issues Github Pull Requests GitHub Discussions
Arch Docker Image Size (tag) Docker Pulls Docker Stars
Source GitHub forks GitHub stars License Donate

Important note

New major image versions (e.g. v6, v7, v8) always include a new major version of node! Although js-controller should handle this kind of upgrade fine, in some cases this still results in problems with some adapters. To avoid having trouble with this major version upgrades, it is always a good move to upgrade your container manually with backup and restore procedure. For more details please see the maintenance part of the ioBroker Docker image docs.

Quick reference

Supported tags

It is highly recommended not to use the latest tag for production, especially when using any kind of automated update procedure like watchtower. Please use the latest-v[major_version] tag instead.

Node 18 versions

Node 16 versions

What is ioBroker?

IoBroker is a open source IoT platform written in JavaScript that easily connects smarthome components from different manufactures. With the help of plugins (called: "adapters") ioBroker is able to communicate with a big variety of IoT hardware and services using different protocols and APIs.
All data is stored in a central database that all adapters can access. With this it is very easy to build up logical connections, automation scripts and beautiful visualisations.
For further details please check out iobroker.net.

How to use this image?

Running from command-line

For taking a first look at iobroker on docker it would be enough to simply run the following basic docker run command:

docker run -p 8081:8081 --name iobroker -h iobroker buanet/iobroker

Running with docker-compose

When using docker-compose define the iobroker service like this:

version: '2'

services:
  iobroker:
    container_name: iobroker
    image: buanet/iobroker
    hostname: iobroker
    restart: always
    ports:
      - "8081:8081"

Persistent data

To make your ioBroker configuration persistent it is recommended to mount a volume or path to /opt/iobroker.

On command-line add

-v iobrokerdata:/opt/iobroker

On docker-compose add

    volumes:
      - iobrokerdata:/opt/iobroker

Configuration via environment variables

You could use environment variables to auto configure your ioBroker container on startup.

Configure ioBroker application:

  • IOB_ADMINPORT (optional, default: 8081) Set ioBroker adminport on startup
  • IOB_BACKITUP_EXTDB (optional) Set true for backing up external databases in ioBroker backitup adapter (Make sure your have read the docs)
  • IOB_MULTIHOST (optional) Set "master" or "slave" for multihost support (needs additional config for objectsdb and statesdb!)
  • IOB_OBJECTSDB_TYPE (optional, default: jsonl) Set type of ioBroker objects db, could be "jsonl", "file" (deprecated) or "redis"
  • IOB_OBJECTSDB_HOST (optional, default: 127.0.0.1) Set host for ioBroker objects db, supports comma separated list for Redis Sentinel Cluster
  • IOB_OBJECTSDB_PORT (optional, default: 9001) Set port for ioBroker objects db, supports comma separated list for Redis Sentinel Cluster
  • IOB_OBJECTSDB_PASS (optional) Set authentication for Redis db connection
  • IOB_OBJECTSDB_NAME (optional, default: mymaster) Set name for Redis Sentinel CLuster db
  • IOB_STATESDB_TYPE (optional, default: jsonl) Set type of ioBroker states db, could be "jsonl", "file" (deprecated) or "redis"
  • IOB_STATESDB_HOST (optional, default: 127.0.0.1) Set host for ioBroker states db, supports comma separated list for Redis Sentinel Cluster
  • IOB_STATESDB_PORT (optional, default: 9000) Set port for ioBroker states db, supports comma separated list for Redis Sentinel Cluster
  • IOB_STATESDB_PASS (optional, default: 9000) Set authentication for Redis db connection
  • IOB_STATESDB_NAME (optional, default: mymaster) Set name for Redis Sentinel cluster db

Activate special features:

  • AVAHI (optional) Set true to install and activate avahi-daemon for supporting yahka adapter
  • ZWAVE (optional) Set true to install openzwave to support zwave adapter

Configure environment:

  • DEBUG (optional) Set true to get extended logging messages on container startup
  • LANG (optional, default: de_DE.UTF-8) The following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8
  • LANGUAGE (optional, default: de_DE:de) The following locales are pre-generated: de_DE:de, en_US:en
  • LC_ALL (optional, default: de_DE.UTF-8) The following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8
  • OFFLINE_MODE (optional) Set true if your container has no or limited internet connection
  • PACKAGES (optional) Install additional linux packages to your container, packages should be separated by whitespace like this: package1 package2 package3.
  • PERMISSION_CHECK (optional, default: true) Set "false" to skip checking and correcting all relevant permissions on container startup (Use at own risk!!!)
  • SETGID (default: 1000) In some cases it might be useful to specify the gid of the containers iobroker user to match an existing group on the docker host
  • SETUID (default: 1000) In some cases it might be useful to specify the uid of the containers iobroker user to match an existing user on the docker host
  • TZ (optional, default: Europe/Berlin) Specifies the time zone, could be all valid Linux timezones
  • USBDEVICES (optional) Set relevant permissions on mounted devices like /dev/ttyACM0 (inside the container), for more than one device separate with ";"

Notes about Docker networks

The examples above are dealing with the Docker default bridge network. In general there are some reasons why it might be the better choice to use a user-defined bridge network.

Using a Docker bridge network works fine for taking a first look and with most of the ioBroker adapters (if you don't forget to redirect the ports your adapters use).
But some ioBroker adapters are using techniques like Multicast or Broadcast for automatic detection of IoT devices
In this case it may be useful to switch to host or MACVLAN network.

For more information about networking with Docker please refer to the official Docker docs.

Support the Project

If you like what you see please leave us stars and likes on our repos and join our growing community. See you soon. :)