Analytics cookies only (Google Analytics, PostHog). No ad networks, no cross-site tracking. See our privacy policy.
Self-host openHAB
updated Oct 2026deployed by usprices checked · Jul 2026Install verified on Ubuntu 26.04 · Oct 2026 · how we test
We earn commissions when you shop through the links below. Full disclosure →
A vendor-neutral home automation platform: the open Home Automation Bus connects different bus systems, hardware devices and interface protocols through bindings, adds automation logic across those system boundaries, and offers user interfaces for it. A pure Java solution built on OSGi, published as Docker images in stable, milestone and snapshot channels.
Runs on a VPS from $10/mo (Vultr 2 GB, 2 GB RAM) · prices checked Oct 2026
Our recommendation
Pick openHAB when your smart home is a mix of vendors and protocols and you want one integration layer you can run on your own server: the project describes itself as a universal integration platform, a pure Java solution built on OSGi, where bindings connect different bus systems, hardware devices and interface protocols and automation logic works across those boundaries. It is EPL-2.0 and ships as Docker images in three channels: stable releases (about two a year), monthly milestones and snapshots. Our snippet is the Docker docs' Compose example with the image pinned to the 5.2.3 stable release and the three data folders as named volumes. The Docker docs publish no RAM minimum (their Ansible example caps the container at 512 MB), so our 1 GB floor is an estimate for a Java application. The catalog's Home Assistant is the larger community project with a different design; Node-RED and ESPHome are the usual companions for flows and devices.
What you need
Any VPS with at least 1024 MB of RAM
A domain you control — most self-hosted setups need HTTPS in front of them
openHAB's Docker documentation flags these before you rely on the container:
non-negotiableThe docs run the container with --net=host (network_mode: host) on Linux so UPnP discovery works, and note that host networking does not work on Docker for Windows or macOS. Our snippet publishes port 8080 instead, so automatic discovery of devices on your network will not work; switch to host networking if you rely on it. The console SSH port is 8101.
non-negotiableThe container runs as openhab with UID and GID 9001 unless you set USER_ID and GROUP_ID. Named volumes avoid the ownership problem; with host directories they must exist, be empty and be owned by that user, or startup fails with a KARAF_ETC is not valid error. The three folders to keep are /openhab/conf, /openhab/userdata and /openhab/addons.
non-negotiableCRYPTO_POLICY=unlimited is needed for some bindings, such as MQTT and the openHAB Marketplace; the docs ask you to check local law before enabling it. Port 8080 is plain HTTP, so put a TLS reverse proxy in front before anything leaves your network.
non-negotiableUse the stable tags (5.2.3) in production: milestone tags are monthly previews and snapshots can be unstable. The -alpine images are smaller but the docs warn they may be less compatible because OpenJDK is used. On startup the container compares the userdata version with the image's, backs up userdata and applies the update, so take your own backup before moving to a newer tag.