back to home

ioBroker / ioBroker.js-controller

ioBroker controller

289 stars
62 forks
167 issues
TypeScriptJavaScriptLua

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing ioBroker/ioBroker.js-controller in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/ioBroker/ioBroker.js-controller)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

ioBroker.js-controller The ioBroker.js-controller is the heart of any ioBroker installation. The controller is owning the central configuration of the ioBroker installation and controls and monitors all adapter processes for the current host. **Please check the js-controller compatibility information below which version runs on your Node.js version** Overview • Compatibility • Links • Usage • Configuration • Feature Overview • Release cycle and Development process overview • License Compatibility • js-controller 7.x (Lucy) works with Node.js 18.x, 20.x, 22.x and probably 24.x • js-controller 6.x (Kiera) works with Node.js 18.x, 20.x, 22.x • js-controller 5.x works with Node.js 16.x, 18.x, 20.x • js-controller 4.x works with Node.js 12.x, 14.x, 16.x (incl. up to NPM 8), 18.x • js-controller 3.x works with Node.js 10.x, 12.x, 14.x , 16.x (first tests look good, NPM 7 still has some issues, so NPM6 is best) • js-controller 2.x works with Node.js 8.x, 10.x, 12.x, 14.x (untested) • js-controller 1.x works with Node.js 4.x, 6.x, 8.x, 10.x (untested) Please try to stay current with your Node.js version because the support is limited in time. As of now (May 2024) all Node.js versions below 18.x are no longer supported by Node.js and considered EOL (End Of Life). To upgrade your Node.js version and ioBroker, please follow https://forum.iobroker.net/topic/44566/how-to-node-js-f%C3%BCr-iobroker-richtig-updaten-2021-edition! As it is hard to keep a lot of the decentralized adapters up-to-date, up from controller version 6.0.4 the js-controller will override the dependency of single adapters to ensure compatibility with the current js-controller version. • js-controller 6.x (Kiera) specifies this version as . Links • Changelog • Official website: https://www.iobroker.net • Forum: https://forum.iobroker.net • Explanation of the concept: https://github.com/iobroker/iobroker ---------------------------------------------------------------------- Usage Example how to install on a Debian-based system: Install ioBroker See Linux instructions, Windows instructions and after that, ioBroker should be running and available in the browser under . Start ioBroker controller Linux • run to start the ioBroker controller in the background • watch the logfile or • run in the ioBroker directory to start the ioBroker controller in foreground and watch the log on console. Windows • run in the ioBroker directory to start the ioBroker controller as service. The name of the service is "iobroker( )" • check the logfile or • run in the ioBroker directory to start the ioBroker controller in foreground and watch the log on console Configuration The main configuration is stored in . Normally, there is no need to edit this file because the ioBroker CLI commands can control most of the settings. Feature Overview • Admin UI • Automatic adapter upgrade • Command Line Interface • Adapter Upgrade with Webserver • Controller UI Upgrade • Per host adapter objects • Operating system package management • Hostname • Adapter process memory limitation • Directly executing TypeScript adapters • Statistics • Error Reporting via ioBroker Sentry • Notification System • Disk space warnings • Objects warn limit • Controlling and monitoring of adapter processes • Multihost • TIERS: Start instances in an ordered manner • Custom Node.js process arguments • IPv6 DNS resolution support • Object and State Aliases • State and objects databases and files • Certificate Handling • js-controller Host Messages • Adapter Development • Environment Variables • Vendor Packages Workflow Admin UI **Feature status:** stable The admin adapter is installed automatically and starts a web-server that hosts the Admin UI. Default port is 8081, so just open If port 8081 is occupied, you can install a second Admin UI on an alternate port and change the port for the first admin UI. To do so, run and go to the . Of course you can change port 8090 to a different one. Automatic adapter upgrade **Feature status:** New in 6.0.0 Whenever the repository changes, the controller will perform an automatic upgrade of the adapters, w.r.t. the auto-upgrade policy. The policy can be configured system-wide and per adapter. Whenever there is no policy on adapter-level the system-wide policy is used as a fallback. Technically, the system-wide policy is configured in the object in . The policy is only active for the repositories which are set to in . On adapter level, the policy is configured in of each object. Valid values for the policy are , , and . These relate to the version ranges, which will be automatically upgraded. **It is strongly recommended to not configure upgrades to be performed automatically, as these do often contain breaking changes and need manual intervention by the user.** A successful as well as a failed auto-upgrade will generate a notification in the ioBroker notification system (see Notification System). Command Line Interface **Feature status:** stable The command line interface is described at https://www.iobroker.net/#de/documentation/config/cli.md Adapter Upgrade with Webserver **Feature status:** New in 5.0.0 **Feature Flag for detection:** An adapter can be upgraded via . The adapter sends parameters to the which contain the information of the adapter to upgrade as well as information to start a webserver. The webserver can be polled by a UI, even if the adapter itself is stopped during upgrade or does not know of the upgrade. Example: In this example the controller will upgrade the adapter to version . During the upgrade, the log and status information is provided by a webserver running on port , and using with the given certificates. During the update, you can perform a request against the webserver to get the current status of the upgrade. The webserver response is defined as following: Controller UI Upgrade **Feature status:** New in 5.0.0 **Feature Flag for detection:** The controller can be updated via . This feature i…