10 KiB
Note: The image provided as iobroker/iobroker is a mirror of buanet/iobroker
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
- Maintained by: buanet and ioBroker
- Where to get support: ioBroker forum, Discord channel, Facebook group
- Where to report issues: Github Repository Issues
- Supported architectures: amd64, arm32v7, arm64v8
- Changelog: Github Repository Changelog
- Source code: Github Repository
- All other questions should be answered here: ioBroker Docker image docs or iobroker.net
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 startupIOB_BACKITUP_EXTDB(optional) – Settrueto 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 DBIOB_OBJECTSDB_NAME(optional, default: mymaster) – Redis Sentinel DB nameIOB_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 DBIOB_STATESDB_NAME(optional, default: mymaster) – Redis Sentinel DB name
Special Features
AVAHI(optional) – Settrueto install and activate avahi-daemon (for yahka adapter support)
Environment Configuration
DEBUG(optional) – Settruefor extended logging on container startupLANG(optional, default: de_DE.UTF-8) – Pre-generated: de_DE.UTF-8, en_US.UTF-8LANGUAGE(optional, default: de_DE:de) – Pre-generated: de_DE:de, en_US:enLC_ALL(optional, default: de_DE.UTF-8) – Pre-generated: de_DE.UTF-8, en_US.UTF-8OFFLINE_MODE(optional) – Settrueif your container has no or limited internet connectionPACKAGES(optional) – Install additional Linux packages (space-separated list)PACKAGES_UPDATE(optional) – Settrueto update Linux packages on first startPERMISSION_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. :)