All templates

Backrest

v1.0.0

Restic backup management with schedules, snapshots, and restore tools.

backupstorage by getarcaneapp
x-arcane:
  icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/backrest.svg
  urls:
    - https://github.com/garethgeorge/backrest#docker

services:
  backrest:
    image: ghcr.io/garethgeorge/backrest:latest
    restart: unless-stopped
    ports:
      - "${BIND_ADDRESS:-127.0.0.1}:${PORT:-9898}:9898"
    labels:
      com.getarcaneapp.arcane.icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/backrest.svg
    environment:
      BACKREST_DATA: /data
      BACKREST_CONFIG: /config/config.json
      XDG_CACHE_HOME: /cache
      TZ: ${TZ:-Etc/UTC}
    volumes:
      - data:/data
      - config:/config
      - cache:/cache
      - ${SOURCE_PATH:-/srv/backup-source}:/userdata:ro
      - ${REPOSITORY_PATH:-/srv/backrest-repos}:/repos

volumes:
  data:
  config:
  cache:

README

Restic backup management with schedules, snapshots, and restore tools.

Copy .env.example to .env, adjust the settings, then deploy with docker compose up -d or import this template in Arcane. Open http://localhost:9898 on the Docker host. Ports bind to localhost by default; set BIND_ADDRESS to a trusted interface for LAN access, or use a reverse proxy with HTTPS.

Create the source and repository directories before deployment. Complete the first-run setup and enable authentication before exposing the UI. Add a repository at /repos/<name> or a remote backend, set its encryption password, and create plans for /userdata. Source data is read-only; repository storage is writable. Restore to a separate writable target rather than the source mount.

Named volumes retain internal application state across container upgrades. Keep a backup before updating images; docker compose down -v deletes named volume data.

Upstream: installation and configuration.