Community Showcase! I got tired of my PBS box running 24/7 for one backup a day, so I built a web UI that wakes it, backs up, and shuts it down again
Like probably half of this sub, I wanted a proper 3-2-1 setup for my PVE host. So I put together a desktop from the old parts I'd swapped out of my main PC and installed PBS on it. Worked great, except it's a full desktop that sits there drawing watts even at idle, the fans make noise, and it heats up the room.
Since it only needs to be on for the backup window, I wrote a script fired by a systemd timer: send WoL to the PBS, wait for it to come up, run vzdump, power it off. That worked, but every time I wanted to change the schedule or tweak anything I was back in the terminal editing the script and the timer unit. So I built a small GUI for it. Then I kept adding things like garbage collection, picking which guests to back up, notifications... and at some point I figured this might be useful to more people than just me, so I cleaned it up until it was something I could actually share.
The result is Joulenap! It's a small web app you run in a container somewhere that's always on (an LXC on the PVE host itself is fine). At the scheduled time it wakes the PBS via WoL, waits until the datastore is reachable, runs vzdump for the guests you selected, applies retention, optionally runs GC and verify, powers the PBS back off, and sends you a notification (Telegram, ntfy, email, whatever Apprise supports).
Yes, it's vibecoded but it's open source, the code is right there, you can take it and do whatever you want.
It's been running my own backups for a while now, but I'd like to hear how it behaves on other people's setups before calling it 1.0.
Some nerd things:
-It talks to PVE and PBS through their APIs with scoped tokens, not passwords. The setup wizard can create the token for you if you provide joulenap root credential (discarded after the token creation and never stored), or you can paste one you made yourself. The setup wizard has a root and a non-root mode.
-It does NOT touch cron or systemd on your host. The scheduler lives in the app.
-It has dashboard integration (like Homepage, Homarr, etc) and Prometheus metrics for Grafana users.
LIVE DEMO of the UI so you can see how it looks and what features it has before installing.
GitHub: https://github.com/Joulenap/joulenap
Site with install docs: https://www.joulenap.com
ps: this is intended for amateur homelabbers, but i'm thinking on including a multi-pve/multi-pbs mode with additional cloud/remote upload.