feat(network): add Wi-Fi hotspot (access point) settings#2178
Draft
ptrinh wants to merge 1 commit into
Draft
Conversation
Adds a WiFi Hotspot feature so an Umbrel with a capable WiFi adapter can broadcast its own network for other devices to join. Built on NetworkManager (same stack as the existing WiFi client support) so no new system packages are required. Backend (umbreld): - system.ts: supportsWifiHotspot/startWifiHotspot/stopWifiHotspot/ getWifiHotspotStatus/restoreWifiHotspot via nmcli AP-mode connection - wifi-hotspot-routes.ts: supported/status/enable/disable tRPC procedures with rollback to the previous config on failure - persisted under settings.wifiHotspot; restored on boot/OTA UI: - Settings > Wi-Fi Hotspot page (enable toggle, SSID, password) with an Advanced section: band, channel, country code, hidden SSID, and an experimental 'bridge to LAN' option for seamless roaming - shown only when the device reports hotspot support Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds a Wi-Fi Hotspot feature: an Umbrel with a capable Wi-Fi adapter can broadcast its own Wi-Fi network for other devices to join, configurable from Settings → Wi-Fi Hotspot.
It's built on NetworkManager — the same stack already used for Wi-Fi client mode (
system.wifi.*) — so no new system packages are added to the OS image.Why
Umbrel already supports joining a Wi-Fi network as a client, but not hosting one. Running the device as an access point is useful for extending coverage (e.g. an Umbrel in another room acting as a second AP) or providing a network where there isn't one. This mirrors a setup I run at home with a small box bridged onto the LAN so devices roam between APs without dropping connections.
How it works
Backend (
umbreld) — new functions inmodules/system/system.ts, exposed viamodules/system/wifi-hotspot-routes.ts:wifiHotspot.supportediw list, with a safe fallback)wifiHotspot.statuswifiHotspot.enablenmcli; rolls back to the previous working config on failurewifiHotspot.disableConfig is persisted under
settings.wifiHotspotand re-applied on boot/OTA viarestoreWifiHotspot(), exactly likerestoreWiFi().Two modes:
ipv4.method shared). Safe and self-contained.UI (
packages/ui) — new Settings → Wi-Fi Hotspot page (drawer/dialog, mirroring the existing Wi-Fi page):wifiHotspot.supportedis trueFiles
packages/umbreld/source/modules/system/system.ts— hotspot functionspackages/umbreld/source/modules/system/wifi-hotspot-routes.ts— tRPC router (new)packages/umbreld/source/modules/server/trpc/index.ts— register routerpackages/umbreld/source/index.ts—settings.wifiHotspotschema + boot restorepackages/ui/src/modules/wifi-hotspot/wifi-hotspot-drawer-or-dialog.tsx— UI (new)packages/ui/src/routes/settings/wifi-hotspot.tsx— page entry (new)packages/ui/src/routes/settings/index.tsx,.../settings-content.tsx— route + list rowpackages/ui/public/locales/en.json— stringsStatus / testing
Opening as a draft — the code mirrors existing umbreld/NetworkManager patterns but I don't have umbrelOS Wi-Fi hardware to validate the
nmcliAP flows end-to-end. Specifically wanting maintainer eyes on:nmcliAP commands across supported adapters (band/channel/country handling, and whetheriw reg setis the right place for the regulatory domain).Happy to iterate on scope — e.g. land shared/NAT mode first and defer bridging.
🤖 Generated with Claude Code