Files
ioBroker.docker/docs/README_docker_hub_buanet.md
2025-05-24 20:42:29 +02:00

10 KiB
Raw Blame History

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) usually 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 20 versions

Node 18 versions

What is ioBroker?

IoBroker is an 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 visualizations.
For further details please check out iobroker.net.

How to use this image?

Quick Start (for testing)

To quickly try out ioBroker in Docker, simply run:

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

Note:
All data and settings will be lost when the container is removed or recreated. For production use, always use persistent storage (see below).

Production Setup with Docker Compose

For a persistent and production-ready setup, use Docker Compose and mount a volume for your data:

services:
  iobroker:
    container_name: iobroker
    image: buanet/iobroker
    hostname: iobroker
    restart: always
    ports:
      - "8081:8081"
    volumes:
      - iobrokerdata:/opt/iobroker
    environment:
      - TZ=Europe/Berlin

volumes:
  iobrokerdata:

Tip:
Depending on your adapters, you may need to expose additional ports or use a different network mode (e.g. network_mode: host).
See the Networking section for more details.

Persistent Data

To keep your ioBroker configuration and data, always mount a volume or path to /opt/iobroker:

Command-line:

-v iobrokerdata:/opt/iobroker

Docker Compose:

volumes:
  - iobrokerdata:/opt/iobroker

Configuration via Environment Variables

You can use environment variables to automatically configure your ioBroker container at startup.

Application Configuration

  • IOB_ADMINPORT (optional, default: 8081) Set ioBroker admin port on startup
  • IOB_BACKITUP_EXTDB (optional) Set true to enable external database backup in the Backitup adapter (see docs)
  • IOB_MULTIHOST (optional) Set to "master" or "slave" for multihost support (requires additional config for objectsdb and statesdb)
  • IOB_OBJECTSDB_TYPE (optional, default: jsonl) Type of objects DB: "jsonl", "file" (deprecated), or "redis"
  • IOB_OBJECTSDB_HOST (optional, default: 127.0.0.1) Host for objects DB (comma-separated for Redis Sentinel)
  • IOB_OBJECTSDB_PORT (optional, default: 9001) Port for objects DB (comma-separated for Redis Sentinel)
  • IOB_OBJECTSDB_PASS (optional) Password for Redis DB
  • IOB_OBJECTSDB_NAME (optional, default: mymaster) Redis Sentinel DB name
  • IOB_STATESDB_TYPE (optional, default: jsonl) Type of states DB: "jsonl", "file" (deprecated), or "redis"
  • IOB_STATESDB_HOST (optional, default: 127.0.0.1) Host for states DB (comma-separated for Redis Sentinel)
  • IOB_STATESDB_PORT (optional, default: 9000) Port for states DB (comma-separated for Redis Sentinel)
  • IOB_STATESDB_PASS (optional) Password for Redis DB
  • IOB_STATESDB_NAME (optional, default: mymaster) Redis Sentinel DB name

Special Features

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

Environment Configuration

  • DEBUG (optional) Set true for extended logging on container startup
  • LANG (optional, default: de_DE.UTF-8) Pre-generated: de_DE.UTF-8, en_US.UTF-8
  • LANGUAGE (optional, default: de_DE:de) Pre-generated: de_DE:de, en_US:en
  • LC_ALL (optional, default: de_DE.UTF-8) 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 (space-separated list)
  • PACKAGES_UPDATE (optional) Set true to update Linux packages on first start
  • PERMISSION_CHECK (optional, default: true) Set "false" to skip permission checks/corrections (use at your own risk)
  • SETGID (default: 1000) Set the GID for the iobroker user (to match a group on the host)
  • SETUID (default: 1000) Set the UID for the iobroker user (to match a user on the host)
  • TZ (optional, default: Europe/Berlin) Set the timezone (any valid Linux timezone)
  • USBDEVICES (optional) Set permissions for mounted devices (e.g. /dev/ttyACM0, separate multiple devices with ";")

Notes about Docker Networks

The above examples use Docker's default bridge network. In many cases, it is better to use a user-defined bridge network.
See Docker docs: bridge differences.

A bridge network works for most adapters if you map all required ports.
However, some adapters require Multicast or Broadcast for device discovery.
In these cases, consider using host or MACVLAN networking.

For more information, see the official Docker networking documentation.

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