finds.dev← search

// the find

balena-os/wifi-connect

★ 1,488 · Rust · Apache-2.0 · updated Jun 2026

Easy WiFi setup for Linux devices from your mobile phone or laptop

A captive-portal WiFi provisioning tool for headless Linux devices — think Raspberry Pi sitting in a box with no screen. When the device can't find a known network, it spins up a hotspot, you connect your phone, pick a network from a dropdown, and it hands off to NetworkManager. Useful for field deployment of IoT devices where you can't SSH in to configure networking.

Hard dependency on NetworkManager is actually the right call — it means saved credentials persist across reboots without any extra logic. The fallback loop (connection fails → re-enable AP) is the correct behavior and not obvious to get right. Cross-compilation setup via Cross.toml covers ARM targets cleanly, which is the main use case. The captive portal detection is handled by the OS/browser automatically — no custom DNS trickery needed since dnsmasq handles the redirect.

The UI is a React app with its own package.json sitting in the repo, which means you're shipping a Node toolchain dependency for what is ultimately a two-field form — overkill that will rot faster than the Rust code. Hard dependency on NetworkManager rules out a lot of minimal embedded Linux setups that use wpa_supplicant or connman. No HTTPS on the captive portal, so credentials go over the air in plaintext on the AP (the AP is open by default, WPA2 passphrase is optional). The dongle compatibility list hasn't been touched in years and some of those chip drivers have changed status since.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →