Overview
Context: I work on and operate wled.online, a hosted WireGuard control plane for managing your WLED devices. It can proxy and provide other cool integrations. I'm trying to make WLED dead-simple to operate when you're away from home. But, what I'm proposing below benefits anyone running their own WireGuard gateway (home server, VPS, etc.), not just my service. WireGuard is a fantastic, self-hostable protocol.
Since most of us are running ESP32 boards, WireGuard is pretty much the only practical way to get an encrypted tunnel to a remote service. TLS's handshake and buffer requirements eat too much working memory. WireGuard's footprint is small. That's why wled.online is WireGuard-only.
The downside today: using the WireGuard usermod means building your own firmware. I set up a GitHub project to make prebuilt binaries with WireGuard available to everyone, but traction is low. I also see sign-ups where users clearly expect WireGuard to "just work" and give up when they discover it requires custom firmware.
So I wanted to gauge interest in promoting WireGuard from usermod to an official core feature.
To be specific about scope: compiled in by default for ESP32 boards, but inactive until configured. Happy to provide any data on the two controllers I manage via wled.online almost daily.
Describe alternatives you've considered
The MQTT integration is quite limited and is being reworked, which is great to see, but it will still run into the encrypted-connection problem. TLS will be heavy in both code size and working memory. MQTT will remain useful for homelab users or anyone with a local gateway, but WireGuard handles the remote case much better and doesn't require a second set of APIs.
Additional context
I mentioned the controllers I manage via WireGuard usermod. I just wanted to report that it's been very stable. The one bug I've hit: the interface doesn't restart when a public key changes, so a gateway config change requires a controller restart. I think it's a one-line change to fix this. I'm writing this to remind myself to open a PR to fix it 😅 .
If there's appetite for this, I will happily volunteer to do the work!
Are there any major red flags or blockers here? Would love to hear concerns before I start on anything.
Overview
Context: I work on and operate wled.online, a hosted WireGuard control plane for managing your WLED devices. It can proxy and provide other cool integrations. I'm trying to make WLED dead-simple to operate when you're away from home. But, what I'm proposing below benefits anyone running their own WireGuard gateway (home server, VPS, etc.), not just my service. WireGuard is a fantastic, self-hostable protocol.
Since most of us are running ESP32 boards, WireGuard is pretty much the only practical way to get an encrypted tunnel to a remote service. TLS's handshake and buffer requirements eat too much working memory. WireGuard's footprint is small. That's why wled.online is WireGuard-only.
The downside today: using the WireGuard usermod means building your own firmware. I set up a GitHub project to make prebuilt binaries with WireGuard available to everyone, but traction is low. I also see sign-ups where users clearly expect WireGuard to "just work" and give up when they discover it requires custom firmware.
So I wanted to gauge interest in promoting WireGuard from usermod to an official core feature.
To be specific about scope: compiled in by default for ESP32 boards, but inactive until configured. Happy to provide any data on the two controllers I manage via wled.online almost daily.
Describe alternatives you've considered
The MQTT integration is quite limited and is being reworked, which is great to see, but it will still run into the encrypted-connection problem. TLS will be heavy in both code size and working memory. MQTT will remain useful for homelab users or anyone with a local gateway, but WireGuard handles the remote case much better and doesn't require a second set of APIs.
Additional context
I mentioned the controllers I manage via WireGuard usermod. I just wanted to report that it's been very stable. The one bug I've hit: the interface doesn't restart when a public key changes, so a gateway config change requires a controller restart. I think it's a one-line change to fix this. I'm writing this to remind myself to open a PR to fix it 😅 .
If there's appetite for this, I will happily volunteer to do the work!
Are there any major red flags or blockers here? Would love to hear concerns before I start on anything.