Self-hosted · Open · Restic-powered

Every backup, under control.

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.

✓ AES-256 encrypted secrets ✓ 9 storage backends ✓ RBAC & SSO
Features

Everything you need to run backups seriously

One control plane for scheduling, storage, restore, monitoring and access — built on the reliability of Restic.

🗓️

Scheduling & retention

Cron-based schedules with presets, plus forget/prune retention (keep-last / daily / weekly / monthly) applied on every run.

🖥️

Local & remote agents

Back up the server itself or enroll lightweight agents on remote hosts with a single install command. One dashboard for all.

🔔

Notifications

Get alerted on success or failure via email, Slack, Discord, Microsoft Teams, Telegram, Gotify, or a generic webhook.

♻️

Restore & download

Browse snapshots, restore to the original location or an alternate path, or download a selection as an archive.

🔐

Encryption & secrets

Repository passwords and backend credentials are sealed with AES-256-GCM envelope encryption. Plaintext never hits the disk.

👥

RBAC, API keys & SSO

Fine-grained resource grants (view / operate / manage), scoped API keys, and OIDC / Microsoft Entra sign-in with admin approval.

Integrations

Store anywhere, get notified everywhere

Amber speaks every Restic backend and the notification channels your team already uses.

Storage backends

Local / Filesystem SFTP REST Server Amazon S3 Backblaze B2 Azure Blob Google Cloud Storage OpenStack Swift rclone

Notification channels

Email (SMTP) Slack Discord Microsoft Teams Telegram Gotify Generic webhook
How it works

From zero to scheduled backups in minutes

1

Add a target

Point Amber at any Restic repository — S3, B2, SFTP, Azure and more. Credentials are encrypted at rest.

2

Create a job

Choose what to back up (server or agent), the schedule, retention, and which channels to alert on success or failure.

3

Relax & monitor

Watch live progress on the dashboard, restore whenever you need, and let notifications tell you the rest.

Install

Up and running with Docker Compose

Amber ships as a single container plus PostgreSQL. Database migrations run automatically on startup.

1

Create a project folder

Save the compose file below as docker-compose.yml.

2

Generate secrets into .env

Set MASTER_ENCRYPTION_KEY, JWT_SECRET, POSTGRES_PASSWORD, PUBLIC_BASE_URL and your bootstrap admin credentials.

3

Launch

docker compose up -d

Open PUBLIC_BASE_URL and sign in with your bootstrap admin.

docker-compose.yml
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:

Own your backups.

Self-hosted, encrypted, and built on Restic — Amber Backup keeps your data yours.