stacksintermediateFeatured

Homelab Backup Automation Stack — Docker Labels + Restic + Restore Verification

Docker-label-driven backup orchestration with restic encryption, deduplication, 5 preset profiles, 11 automation scripts, and the only homelab tool with automated restore verification — deployed in 15 minutes.

Free~15 minutes setup
docker-composeresticbackrestshoutrrrbashprometheus

What's Included

2-Service Docker Compose

restic 0.18.1 and Backrest v1.11.2. Health checks, memory limits. Shoutrrr v0.8.0 runs on-demand via docker run --rm for notifications.

11 Automation Scripts

backup.sh (orchestrator), restore.sh (guided restore), verify.sh (automated restore verification), backup-health.sh (scoring), backup-report.sh (status), backup-metrics.sh (Prometheus export), dr-generate.sh (runbook generator), add-service.sh (label configurator), preflight.sh (validation), notify.sh (notifications), migrate.sh (migration helper).

5 Backup Profiles

Database (auto-dump for PostgreSQL/pgvector/TimescaleDB/MySQL/MariaDB/MongoDB), Critical (stop + extended retention), Config-Only (90-day flat), Large-Media (exclude media files), Default (all named volumes).

Automated Restore Verification

verify.sh spins up temporary containers, imports backups, runs health checks, and reports PASS or FAIL per service. Database import testing, application health checks, file integrity verification.

Interactive Setup Wizard

Guided configuration for encryption password, storage backend, backup schedule, retention, notifications, and Backrest port. Writes .env, initializes repo, starts containers.

4 Documentation Guides

README, Troubleshooting (per-component issue guide), Customization (extending the stack), Storage Backends (S3/B2/SFTP/NFS setup guides).

MIT License

Use it however you want. Modify, redistribute, use commercially. No restrictions.

Features

Docker-Label Orchestration

backup.nxsi.* labels control all backup behavior per container. No central config file to maintain. Add labels, the next backup picks it up.

Automated Restore Verification

Temp containers, DB import tests, HTTP health checks, PASS/FAIL reporting. No homelab tool does this. Enterprise tools like Veeam charge thousands.

Per-Service Health Scoring

0-100 score per service based on recency (40%), verification (30%), consistency (20%), and storage integrity (10%). One command tells you if backups are healthy.

Auto-Generated DR Runbooks

dr-generate.sh reads container config and backup history, generates step-by-step recovery markdown for each service. Copy-pasteable rebuild instructions.

5 Preset Profiles with Auto-Detection

Database profile auto-detects PostgreSQL (incl. pgvector, TimescaleDB, PostGIS), MySQL/Percona, MariaDB, and MongoDB from the container image.

Dual Storage + Multi-Backend

Local disk, S3, Backblaze B2, SFTP/NAS. Back up to two locations simultaneously for the 3-2-1 rule. ~$0.50/month for 100GB on B2.

Description

Every homelab runner eventually has the same 3 AM realization: nothing is actually backed up properly.

Maybe you have got a cron job rsyncing a few directories. Maybe Duplicati is running but you have not checked it in months. Maybe you added a new service three weeks ago and never configured backups for it.

The real problem is not backing up. Rsync does that fine. The real problem is everything around it. Knowing which containers need their database dumped before backup. Knowing which ones need to be stopped. Knowing whether the backup you took six months ago can actually be restored. Knowing — at a glance — whether every service is protected.

The Homelab Backup Automation Stack is a Docker Compose deployment that handles backup orchestration for every container on your server. Two services (restic and Backrest) plus shoutrrr notifications, 11 scripts, and 5 backup profiles — all configured through Docker labels on your existing containers.

You add labels to your services. The stack reads those labels and handles everything: pre-backup database dumps, container stop/start for consistency, restic backup with deduplication and AES-256 encryption, retention management, and notifications.

No new databases. No complicated web UIs to configure. No YAML pipelines. Labels on your containers and a setup wizard that takes 15 minutes.

Requirements

Docker 24+ with Docker Compose v2, Linux host (Ubuntu 22.04+, Debian 12+, Proxmox 8), 768 MB RAM, 5 GB free disk space

27 files
.yml.sh.json.md.env.example.cron.txt
15 minutes setup
Read the build story

Learn how this was built, the decisions made, and gotchas to watch for.

Homelab Backup Automation Stack — Docker Labels + Restic + Restore VerificationFree
Get Free Download

Related Products

Get weekly AI architecture insights

Patterns, lessons, and tools from building a production multi-agent system. Delivered weekly.