I’ve wanted a simple solution to handle Wake-on-LAN sequences for my home and work labs to boot up servers in the right order. I was already dabbling in Rust and thought this would be an interesting project to dive deeper and see if it could work well for this kind of network tool. The result is rallyup.
rallyup lets you set up server dependencies in a YAML file, so each service (e.g., firewalls, storage, VM hosts) comes online in the right order. It verifies each server’s status before moving to the next.
Features:
- Dependency-based WOL with VLAN support - Built-in health checks (HTTP, open ports, shell commands) - Lightweight enough to run on a Raspberry Pi or similar device
Would love any feedback. Thanks for taking a look!
https://github.com/darwindarak/rallyup/commit/36f9c474c13644...
Never sorted out a reliable enough system for it to be practically useful, but this gives me some ideas...
EDIT: as the sibling comment reminded me, I'm using IPMI, not WoL. That said, I have tested WoL and had no issues with it doing its job – I only switched because I had a server that would randomly fail to find its NVMe drive at boot; rebooting (which IPMI allowed me to do) would fix it.
For Linux set it to "g": https://wiki.archlinux.org/title/Wake-on-LAN#Make_it_persist...
For Windows you need to enable "Wake on Magic Packet": https://www.windowscentral.com/how-enable-and-use-wake-lan-w...
G for maGic, I presume?
That it is defaulted off I feel is motivated, but to make it so hard to turn it on is pretty pathetic.
The fury Microsoft generated by turning it off in a Windows update still fuels me. I had a remote PC that I need to access remotely during holiday season. And Microsoft turns off my ability to power it on, with me left trying to figure out why I can't access the machine anymore.
The absolute most consistent way I've found is using cheap zigbee smart switches or even second hand smart PDUs. Set the machine to boot when power is restored and actually switch the thing on and off from the wall. It saves a whole lot of messing around, you can force the reboot issue and for a tiny amount more in upfront costs you can have power monitoring as well. It also works for network gear that doesn't sleep or anything else that had a physical switch.
edit: Ideally give me hardware with proper out-of-band management (ipmi or AMT at a pinch), but for everything else having control of the power is as good as it gets.
the issue that I discovered after many hours of debugging is that 10gbe port is powered down completely on suspend/power off. so it have no way to work.
because I had limited number of ethernet ports available I set up system to use wake up over WiFi (with wake also on key rotation or disconnect)
Either way, neat project, and thank you for sharing.
Nice project, thanks for sharing!
What type of API are you thinking of? It already runs on a YAML config, so maybe a web server that takes the config as a JSON body instead?
https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&d...
https://www.i3detroit.org/reset-on-lan-an-ethernet-aware-rem...
We’ve also noticed that, in practice, for many data-critical production systems, many of our customers prefer to manually control the boot process to confirm data integrity.
The scenario of partial crashes is interesting. I need to think about how to handle that a bit more. Thanks for the feedback!