OpenThreadBorderRouter-HA

OpenThreadBorderRouter-HA

Docker app from pureelectricity's Repository

Overview

OpenThread Border Router (Home Assistant Optimized) This container runs an OpenThread Border Router (OTBR) specifically tweaked for integration with Home Assistant via the Silicon Labs EFR32MG21 chipset (SkyConnect, ZBT-1, Sonoff ZBDongle-E). CRITICAL PREREQUISITES - READ BEFORE INSTALLING: 1. Enable IPv6 in Unraid: Navigate to Settings > Network Settings. Ensure "Network Protocol" is set to IPv4 + IPv6. If this is disabled, Thread networking will not function. 2. Host Kernel Configuration (Persistence Required): Unraid resets network forwarding rules on every reboot. You must apply the following commands on the Unraid Host to prevent the Thread network from breaking. Commands to run: [code] sysctl -w net.ipv6.conf.all.forwarding=1 sysctl -w net.ipv6.conf.br0.accept_ra=2 sysctl -w net.ipv6.conf.eth0.accept_ra=2 [/code] How to automate this (Choose one): Option A: User Scripts Plugin (Recommended) Install the "User Scripts" plugin. Create a new script with the commands above and set it to run "At Startup of Array". Option B: The Go File (Native) Edit the file /boot/config/go on your flash drive and add the commands to the bottom of the file. This will execute them during the boot sequence. 3. USB Firmware: Your USB stick MUST be flashed with OpenThread RCP Firmware at 460800 baud. (Multiprotocol firmware is not supported). Configuration Notes: - Network Type: Must be Host for mDNS discovery. - WebUI Port: Default is 8099 (to avoid conflict with Unraid Port 80).

Runtime arguments

Web UI
http://[IP]:[PORT:8099]/
Network
host
Shell
bash
Privileged
true
Extra Params
--cap-add=SYS_ADMIN --cap-add=NET_ADMIN --sysctl "net.ipv6.conf.all.disable_ipv6=0" --sysctl "net.ipv4.conf.all.forwarding=1" --sysctl "net.ipv6.conf.all.forwarding=1"

Template configuration

Radio Device (Passthrough)Devicerw

Map your physical USB stick here (use /dev/serial/by-id/...). It maps to /dev/ttyUSB0 inside the container.

Target
/dev/ttyUSB0
Default
/dev/serial/by-id/YOUR_DEVICE_HERE
Radio Path (Internal)Variable

The internal path to the radio. Leave this as /dev/ttyUSB0 matching the internal side of the device mapping above.

Target
DEVICE
Default
/dev/ttyUSB0
Value
/dev/ttyUSB0
BaudrateVariable

Baudrate for RCP Firmware. SkyConnect/ZBT-1/Sonoff-E usually use 460800.

Target
BAUDRATE
Default
460800
Value
460800
Flow ControlVariable

Hardware Flow Control. Set to 1 for SkyConnect/ZBT-1. Set to 0 if using a generic stick without flow control support.

Target
FLOW_CONTROL
Default
1
Value
1
Backbone InterfaceVariable

The Unraid Host interface connected to your LAN/Internet. Usually br0 or eth0.

Target
BACKBONE_IF
Default
br0
Value
br0
OTBR WebUI PortVariable

Port for the OTBR Web Interface. Changed from default 80 to prevent conflict with Unraid.

Target
OTBR_WEB_PORT
Default
8099
Value
8099
OTBR REST PortVariable

Port for the REST API (Used by Home Assistant).

Target
OTBR_REST_PORT
Default
8081
Value
8081
Enable NAT64Variable

Enable NAT64 translation.

Target
NAT64
Default
1
Value
1
Enable FirewallVariable

Enable internal firewall.

Target
FIREWALL
Default
1
Value
1
Data StoragePathrw

Persistent storage for Thread credentials and dataset.

Target
/data/thread
Default
/mnt/user/appdata/otbr
TUN AdapterDevicerw

Required for creating the wpan0 network interface.

Target
/dev/net/tun
Default
/dev/net/tun
Value
/dev/net/tun
Local TimePathro

Sync time with host.

Target
/etc/localtime
Default
/etc/localtime
Value
/etc/localtime
Auto-Flash FirmwareVariable

Disable automatic firmware flashing attempts.

Target
AUTOFLASH_FIRMWARE
Default
0
Value
0
Log LevelVariable

Log verbosity (info, debug, warn).

Target
OTBR_LOG_LEVEL
Default
info
Value
info

Details

Repository
ghcr.io/ownbee/hass-otbr-docker:latest
Last Updated2026-05-31
First Seen2025-12-15

Run OpenThreadBorderRouter-HA on Unraid.

OpenThreadBorderRouter-HA is listed in Community Apps for Unraid OS. Explore Unraid to build a flexible home server, NAS, or homelab.