Compiled from the ioBroker GitHub documentation and adapter READMEs as at October 2026. Corrections welcome.
1. How it works
- ioBroker keeps two databases: objects (configuration/metadata) and states (values). By default these are in memory and saved to disk periodically; Redis can be used instead.
- Each adapter instance is its own Node.js process. The README says each adapter costs roughly 10 to 60 MB of RAM, so RAM is the limiting factor on small hosts.
- Adapters can run on other hosts and connect over IP to the databases.
- Security model: ioBroker is built to be accessed by trusted adapters in trusted networks. Don't expose it directly to the internet. If you open the web admin, use HTTPS with valid certificates and ideally a VPN/reverse proxy.
- Linux script: the official install script or the npm installer. Run as a normal user with sudo rights, not as root.
Code: Select all
# Linux - npm installer
npx @iobroker/install
# or the shell installer
curl -sL https://iobroker.net/install.sh | bash -
# installer options (documented in PARAMETERS.md)
# --silent --redis --no-autostart --hardened- Hardened mode: the installer's --hardened option stops the iobroker user getting sudo rights (you can switch an existing install with iob fix --hardened).
- Docker: the community-maintained official image is buanet/iobroker (amd64 and arm64v8). Detailed docs are at docs.buanet.de.
- Windows: installer or npx @iobroker/install in an empty folder such as C:\iobroker.
- Node.js: ioBroker requires specific Node.js major versions. According to the current parameters reference, the accepted versions are 22, 24 and 26, with 24 recommended. Use iob nodejs-update to move versions rather than installing Node yourself.
Code: Select all
iob start | stop | restart # control the service
iob diag # diagnostics (share the summary when asking for help: iob diag --short)
iob fix # repair permissions and common install problems
iob nodejs-update [22|24|26] # update Node.js to a supported version3. Hardware
ioBroker runs on anything Node.js runs on: x86, ARM (Raspberry Pi), Windows, Linux, macOS. In practice that means a Raspberry Pi 4/5, a mini PC, or a VM/LXC container. Budget RAM according to how many adapter instances you expect. For Zigbee you need a coordinator (see the project thread).
4. Adapters to look at first
- javascript - scripting engine; scripts can be written in JavaScript/TypeScript, and there is a Blockly editor for visual rules.
- mqtt - can act as an MQTT client or run its own MQTT server/broker (default port 1883, WebSockets on port+1). The README suggests using SSL if you enable authentication.
- sonoff - for Tasmota devices over MQTT. The README says: if you only have Tasmotas, use this adapter. For mixed MQTT devices use the mqtt adapter instead (sonoff does not relay messages to other MQTT subscribers).
- zigbee and zigbee2mqtt - two ways to do Zigbee (covered in the project thread).
- onvif - ONVIF cameras: discovery on adapter start, camera events (e.g. motion), PTZ presets, and snapshots you can pass to scripts (the README shows sending a snapshot to Telegram).
- Strengths: adapters for almost everything, simple data model that makes cross-system automation easy, powerful JavaScript/Blockly scripting, active community.
- Limitations: many adapters are community maintained, so quality and update speed vary; documentation and forum help are often German-first; each adapter instance costs memory; and Node.js version changes can break adapters, so check compatibility before major updates.
- ioBroker website and documentation
- ioBroker on GitHub (README + PARAMETERS.md)
- ioBroker forum