First Backup

Walk through creating your first backup

This guide walks you through creating your first backup, from enrolling a node to browsing the snapshot.

1. Create a Repository

Navigate to Repositories → Add Repository and configure your backup destination:

  • Name — A friendly name like “local-backups” or “s3-offsite”
  • Type — Local path, SFTP, S3, or any restic-supported backend
  • Path — The repository location (e.g., /backups/restic or s3:bucket-name/prefix)
  • Password — Encryption password for the restic repository

The hub will initialize the repository on first use if it does not already exist.

2. Enroll a Node

Go to Nodes → Add Node to generate an enrollment token. Run the install command on the target machine:

curl -fsSL http://hub:4865/install.sh | sh -s -- \
  --hub http://hub:4865 \
  --token <token> \
  --name "my-server"

The node will appear in the dashboard once it connects.

3. Create a Backup Plan

Navigate to Plans → Create Plan and configure:

  • Name — e.g., “Daily Web Server Backup”
  • Node — Select your enrolled node
  • Repository — Select the repository you created
  • Paths — Directories to back up (e.g., /home, /etc, /var/www)
  • Excludes — Patterns to skip (e.g., *.log, node_modules/)
  • Schedule — Cron expression (e.g., 0 2 * * * for 2 AM daily)
  • Retention — How long to keep snapshots (e.g., keep last 7 daily, 4 weekly, 12 monthly)

4. Run the Backup

You can wait for the schedule to trigger, or click Run Now on the plan to start immediately. Watch the progress live on the dashboard — you will see file counts and data transfer in real time.

5. Browse Snapshots

After the backup completes, go to the node detail page and click on a snapshot to browse its contents. You can:

  • Navigate the file tree
  • Download individual files
  • Download entire folders as archives
  • Restore files to the same or a different node

What Happens During a Backup

  1. The hub sends a backup command to the node over WebSocket
  2. The node runs pre-hooks (if configured)
  3. Restic executes the backup with the configured paths and excludes
  4. Progress is streamed back to the hub in real time
  5. Post-hooks run (if configured)
  6. Repository stats are collected automatically
  7. The job result (snapshot ID, file counts, bytes added) is recorded