The original post: /r/selfhosted by /u/gibus21250 on 2024-10-06 18:02:38.
Hi everyone!
I’m excited to share a project I’ve been working on called Wakupator, which helps reduce unnecessary power consumption by waking up machines only when they’re needed. 🚀
What is Wakupator?
Wakupator is a lightweight, minimalist machine awakener designed to help you manage home servers or small infrastructures efficiently. Instead of having your machines running 24/7, Wakupator wakes them up automatically when there’s relevant network traffic. This helps save energy, while still keeping your services available when really neede. You save energy by sacrificing availability.
It’s a tool I built to address a specific need in my setup, and I figured others might find it useful too!
How does it work?
- Register: When your machine shuts down, it registers to Wakupator with a JSON payload, containing a list of IPs/ports from which it wants to be woken up.
- IP spoofing: Wakupator associates all requested IPs and monitors specific IP addresses and ports, so it knows exactly when traffic is arriving. When it detects traffic, it sends a Wake-on-LAN (WOL) packet to the corresponding machine to wake it up and the client is removed from Wakupator’s monitoring.
- Multiple Clients: You can register several machines (clients) with Wakupator. Each client is identified by its MAC address, and you can monitor different ports for each machine.
- Energy savings: By waking up machines only when necessary!
➡️ Save energy, save the Planet! (and reduce your bills 😉)
Typical use case
For my case, I have a machine hosting services like a Minecraft server, but don’t need it running 24/7, Wakupator can wake it up automatically when someone tries to connect to it.
I’m hosting Wakupator on a RaspberryPI:
Someone tries to connect to your Minecraft server -> Wakupator detects the TCP SYN connection -> The machine wakes up!
The service will be available depending on the machine’s start-up speed!
How to Get Started
You can find all the setup instructions and the project itself on GitHub: Wakupator GitHub Link
There are pre-compiled binaries available for easy installation, or you can compile it yourself.
Feedback
If you’re interested, I’d love to hear from you! Feel free to check out the project, ask questions, suggest improvements, and of course, you can report bugs directly on the GitHub page!
I’m really hoping this can help others who, like me, want to optimize their infrastructure and save energy. 🌱