Scheduling & retention
Cron-based schedules with presets, plus forget/prune retention (keep-last / daily / weekly / monthly) applied on every run.
Amber Backup is a single dashboard for your Restic backups across local and remote servers. Schedule jobs, enforce retention, restore files, and get alerted the moment something fails — all self-hosted, all encrypted.
One control plane for scheduling, storage, restore, monitoring and access — built on the reliability of Restic.
Cron-based schedules with presets, plus forget/prune retention (keep-last / daily / weekly / monthly) applied on every run.
Back up the server itself or enroll lightweight agents on remote hosts with a single install command. One dashboard for all.
Get alerted on success or failure via email, Slack, Discord, Microsoft Teams, Telegram, Gotify, or a generic webhook.
Browse snapshots, restore to the original location or an alternate path, or download a selection as an archive.
Repository passwords and backend credentials are sealed with AES-256-GCM envelope encryption. Plaintext never hits the disk.
Fine-grained resource grants (view / operate / manage), scoped API keys, and OIDC / Microsoft Entra sign-in with admin approval.
Amber speaks every Restic backend and the notification channels your team already uses.
Point Amber at any Restic repository — S3, B2, SFTP, Azure and more. Credentials are encrypted at rest.
Choose what to back up (server or agent), the schedule, retention, and which channels to alert on success or failure.
Watch live progress on the dashboard, restore whenever you need, and let notifications tell you the rest.
Amber ships as a single container plus PostgreSQL. Database migrations run automatically on startup.
Save the compose file below as docker-compose.yml.
.envSet MASTER_ENCRYPTION_KEY, JWT_SECRET, POSTGRES_PASSWORD, PUBLIC_BASE_URL and your bootstrap admin credentials.
docker compose up -d
Open PUBLIC_BASE_URL and sign in with your bootstrap admin.
services:
db:
image: postgres:17-alpine
restart: unless-stopped
environment:
POSTGRES_USER: amber
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-amber}
POSTGRES_DB: amber
volumes:
- amber-pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U amber"]
interval: 5s
timeout: 5s
retries: 10
app:
image: devpatf/amber-backup:latest
restart: unless-stopped
environment:
DATABASE_URL: postgres://amber:${POSTGRES_PASSWORD:-amber}@db:5432/amber
MASTER_ENCRYPTION_KEY: ${MASTER_ENCRYPTION_KEY:?}
JWT_SECRET: ${JWT_SECRET:?}
PUBLIC_BASE_URL: ${PUBLIC_BASE_URL:-http://localhost:3000}
BOOTSTRAP_ADMIN_EMAIL: ${BOOTSTRAP_ADMIN_EMAIL:-admin@example.com}
BOOTSTRAP_ADMIN_PASSWORD: ${BOOTSTRAP_ADMIN_PASSWORD:-changeme}
ports:
- "${APP_PORT:-3000}:3000"
volumes:
- amber-data:/data
depends_on:
db:
condition: service_healthy
volumes:
amber-pgdata:
amber-data:
Self-hosted, encrypted, and built on Restic — Amber Backup keeps your data yours.