Joulenap
Proxmox VE · Backup Server · Wake-on-LAN

Your backup server sleeps.
Joulenap wakes it, backs up, tucks it back in.

A self-hosted scheduler that keeps your Proxmox Backup Server powered off — and wakes it only when it's time to back up.

Open-source · AGPL-3.0 · runs on ~512 MB RAM

Joulenap dashboard: the scheduler, PBS power state, and last-run status This is the real UI — open the live demo →

Get running

One command. No files to download.

The container creates its own config on first boot — you finish setup in the browser.

Full install guide
root@proxmox-lxc: ~
# 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 LXC 2 Install Docker 3 Run the command 4 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.