# pull & run — Docker grabs the image from Docker Hub
docker run -d --name joulenap \
--restart unless-stopped \
--network host \
-e TZ=Etc/UTC \
-v /opt/joulenap/data:/app/data \
catubba/joulenap:latest
# → open http://<your-ip>:8080 and run the setup wizard
1 Create a small LXC2 Install Docker3 Run the command4 Open the wizard
The nightly cycle
Off by default. Awake only when it matters.
Joulenap owns its own schedule and drives the whole cycle over the Proxmox APIs — nothing on your PVE host is modified.
01
Wake
Sends a Wake-on-LAN packet to the sleeping PBS.
02
Wait
Polls until the PBS is reachable, with retries.
03
Back up
Runs vzdump for the guests you picked, to PBS.
04
Prune + GC
Applies retention and garbage-collects the datastore.
05
Power off
SSHes a clean shutdown once the run succeeds.
06
Notify
Pings you on success or failure — your channel.
What you get
A friendly UI around a job you'd otherwise script by hand.
Web scheduler
Pick the time, enable or disable, and see the next and last run at a glance.
Wake-on-LAN
Wakes the PBS itself, waits for it to be ready, and retries on a timeout.
Per-guest selection
Toggle which CTs and VMs to back up — all, or include/exclude lists, resolved live at backup time.
Retention + GC + verify
Keep last/daily/weekly/monthly/yearly, garbage collection, and optional verify — while awake.
Notifications
Telegram, ntfy, email, Discord and 100+ more via Apprise — on success or failure.
Live log + manual runs
Watch real vzdump/GC output stream, run a backup any time — or stop a stuck job, cancelled on the Proxmox side too.
Run history
Every run broken down into steps — wake, backup, GC, verify — with durations, outcomes and logs.
Dashboards & metrics
Status on Homepage, Homarr, Dashy or Glance via a read-only API, plus Prometheus metrics for Grafana. Scraping never wakes the PBS.
Private by design
No outbound requests, self-hosted fonts, update check strictly opt-in. English + Italian, dark & light, works on your phone.
Why it exists
A second machine on 24/7 for a job that runs a few minutes a night.
A dedicated PBS box is the right way to keep backups on separate hardware — the 3-2-1 rule. But leaving it running around the clock burns power for nothing, and Proxmox's built-in schedules assume the target is always reachable, so they can't drive a wake-then-sleep cycle.
Joulenap fills that gap: a joule saved, while your backup server takes a nap. 💤
~23 h/day
powered off, in a typical nightly setup
Always-on PBS24 h/day
With Joulenap~1 h/day awake
Backups keptidentical
Illustrative — actual savings depend on your backup window & hardware.