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/resticors3: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
- The hub sends a backup command to the node over WebSocket
- The node runs pre-hooks (if configured)
- Restic executes the backup with the configured paths and excludes
- Progress is streamed back to the hub in real time
- Post-hooks run (if configured)
- Repository stats are collected automatically
- The job result (snapshot ID, file counts, bytes added) is recorded