master ← JamieMagee:openthread-border-router
opened 03:10AM - 23 Mar 26 UTC
Picks up from #332296, which has been open since August 2024. @mrene did the hea…vy lifting there. I've rebased onto current master, addressed the remaining review feedback, and bumped to the latest upstream release.
This adds [ot-br-posix](https://github.com/openthread/ot-br-posix), the OpenThread border router, as a package and NixOS service module. It bridges Thread mesh networks (the 802.15.4/6LoWPAN kind used by Matter devices) to your local IPv6 network. You plug in a Thread radio dongle like the Home Assistant SkyConnect/ZBT-1, run the service, and your Thread devices become reachable from Home Assistant, Apple Home, etc.
Example config for a SkyConnect dongle:
```nix
services.openthread-border-router = {
enable = true;
radio = {
device = "/dev/serial/by-id/.....";
baudRate = 460800;
flowControl = true;
};
};
```
### What changed vs #332296:
- Bumped to `thread-reference-20250612` (was `unstable-2025-05-30`)
- `backboneInterface` is now `backboneInterfaces` (a list) since `--backbone-ifname` can be specified multiple times (@felschr)
- Added `extraArgs` option (@felschr)
- Avahi settings use `lib.mkDefault` so you can override them if you use systemd-resolved for mDNS instead (@felschr)
- Fixed the "relie" typo (@sweenu, @sanzoghenzo)
- User-provided values in systemd ExecStart are escaped with `utils.escapeSystemdExecArg`
- Release notes moved to 26.05
The systemd hardening, `network-online.target` dependency, and `AF_UNIX` fix for otbr-web were already addressed by @mrene in the original PR.
Note: the SkyConnect/ZBT-1 needs Thread firmware flashed before this will work. The Home Assistant docs cover that, or you can use `universal-silabs-flasher` (already packaged).
## Things done
- Built on platform:
- [x] x86_64-linux
- [ ] aarch64-linux
- [ ] x86_64-darwin
- [ ] aarch64-darwin
- Tested, as applicable:
- [ ] [NixOS tests] in [nixos/tests].
- [ ] [Package tests] at `passthru.tests`.
- [ ] Tests in [lib/tests] or [pkgs/test] for functions and "core" functionality.
- [x] Ran `nixpkgs-review` on this PR. See [nixpkgs-review usage].
- [ ] Tested basic functionality of all binary files, usually in `./result/bin/`.
- Nixpkgs Release Notes
- [ ] Package update: when the change is major or breaking.
- NixOS Release Notes
- [ ] Module addition: when adding a new NixOS module.
- [ ] Module update: when the change is significant.
- [x] Fits [CONTRIBUTING.md], [pkgs/README.md], [maintainers/README.md] and other READMEs.
[NixOS tests]: https://nixos.org/manual/nixos/unstable/index.html#sec-nixos-tests
[Package tests]: https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#package-tests
[nixpkgs-review usage]: https://github.com/Mic92/nixpkgs-review#usage
[CONTRIBUTING.md]: https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md
[lib/tests]: https://github.com/NixOS/nixpkgs/blob/master/lib/tests
[maintainers/README.md]: https://github.com/NixOS/nixpkgs/blob/master/maintainers/README.md
[nixos/tests]: https://github.com/NixOS/nixpkgs/blob/master/nixos/tests
[pkgs/README.md]: https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md
[pkgs/test]: https://github.com/NixOS/nixpkgs/blob/master/pkgs/test