SLV Backup - Quickstart

🗄️ SLV Backup

SLV Backup creates encrypted, incremental backups of your node using restic. All data is encrypted client-side with AES-256 before upload — the server never sees your plaintext data.
Legacy mode: SLV also supports unencrypted tar+zstd backups (without --restic). We strongly recommend using --restic for all new backups.

Prerequisites

  • SLV CLI installed on the target node
  • sudo access (required for full-disk backup)
  • Logged in (slv login) with an active storage subscription
  • restic installed (apt install restic)

Create an Encrypted Backup

bash
sudo slv backup create --restic --yes
text
🗄️  SLV Backup (restic mode)

  Region:    default
  Retention: 7 days

⚠️  Restic encryption password generated and saved to:
   /home/solv/.slv/restic-password
   BACK UP THIS FILE — without it, backups cannot be restored.

🔧 Initializing restic repository (if needed)...
📦 Creating restic backup...

Files:       151263 new,     0 changed,     0 unmodified
Dirs:        22486 new,     0 changed,     0 unmodified
Added to the repository: 4.107 GiB (1.837 GiB stored)

processed 151263 files, 4.366 GiB in 0:50
snapshot b6925e6d saved

✅ Restic backup complete
🧹 Applying retention policy (keep within 7 days)...
✅ Backup complete.

What happens on first run

  1. A random encryption password is generated and saved to ~/.slv/restic-password (mode 0600)
  2. A restic repository is initialized on ERPC Cloud Storage
  3. Your entire disk is backed up (excluding system pseudo-filesystems)

Subsequent runs

Only changed files are uploaded (incremental). Deduplication keeps storage costs low.

List Backups

bash
sudo slv backup list
Shows both restic snapshots and legacy tar backups in cloud storage.

Restore from Backup

Restore the latest snapshot:
bash
sudo slv backup restore latest
Restore a specific snapshot:
bash
sudo slv backup restore b6925e6d
Restore a legacy tar backup:
bash
sudo slv backup restore backup-mynode-20260318.tar.zst

Verify Backup Integrity

bash
sudo restic -r rest:https://<apiKey>:[email protected]/v3/storage/restic/ \
  --password-file ~/.slv/restic-password check

Set Up Automated Backups (Cron)

bash
sudo slv backup create --restic --cron daily
IntervalDescription
dailyRun once a day
weeklyRun once a week
monthlyRun once a month
offRemove the cron job

Retention

By default, snapshots older than 7 days are automatically pruned:
bash
sudo slv backup create --restic --retention 14

Customize Excludes

View the current exclude list:
bash
slv backup create --list-excludes
Add additional exclude paths:
bash
sudo slv backup create --restic --exclude /home/solv/ledger --exclude /home/solv/snapshots

Encryption & Security

FeatureDetail
EncryptionAES-256-CTR + Poly1305-AES (client-side)
IntegritySHA-256 content-addressable storage
DeduplicationContent-defined chunking
Server-side visibilityNone — server only sees encrypted blobs
Password file~/.slv/restic-password (mode 0600)
Excluded from backup~/.slv/restic-password, ~/.slv/api.yml, ~/.slv/backup.env
⚠️ IMPORTANT: Back up your ~/.slv/restic-password file separately. Without it, your backups are irrecoverably lost.

Options Reference

OptionDescription
--resticUse restic for encrypted incremental backup (recommended)
-r, --region <region>Storage region (default: eu)
--exclude <path>Additional paths to exclude (repeatable)
--include <path>Remove from default excludes (repeatable)
--list-excludesShow current exclude list and exit
--retention <days>Prune snapshots older than N days (default: 7)
--cron <interval>Set up cron job (daily/weekly/monthly/off)
-y, --yesSkip confirmation prompts
--uploadLegacy: upload tar backup to cloud storage
-o, --output <path>Legacy: output file path for tar backup

Legacy Mode (tar+zstd)

For backward compatibility, unencrypted tar backups are still supported:
bash
sudo slv backup create --upload --yes     # Unencrypted tar backup
Note: Legacy backups are not encrypted. We recommend migrating to --restic for all new backups.