Documentation

Documentation

Install the agent, create a config, run backups, and restore when needed.

Quick start

Download the agent, create a config, run your first backup, and confirm it appears in the portal.

# 1) Download the agent
# https://backupverified.com/download-agent.html

# 2) Create or edit your config file
nano bv-agent.yml

# 3) Paste your agent_key and client_encryption_key_b64 into bv-agent.yml

# 4) Validate your config
bv-agent validate-config -config bv-agent.yml

# 5) Run a backup
bv-agent backup -config bv-agent.yml

Paste your agent_key and client_encryption_key_b64 into the file and keep both safe.

Installation

Download the agent for your operating system, then make it executable.

# Example (macOS / Linux / FreeBSD)
chmod +x ./bv-agent

# Sanity check (after you have a config)
bv-agent validate-config -config bv-agent.yml

Downloads and CLI install commands are available on the Download Agent page.

Configuration file

The agent runs a command that writes backup data to STDOUT. The agent reads from STDOUT, compresses and encrypts locally, then uploads your encrypted backup to Backup Verified Managed Storage.

Streaming requirement

Commands must stream to STDOUT. For tar archives, use -cf - (the trailing - means “write to STDOUT”). Note: the agent already compresses the stream, so you usually should not use tar’s -z option. Tip: ~ is not expanded because the agent does not run a shell. Use full paths or run from the target directory.

Minimal config

bv:
  api_base: "https://backupverified.com"
  timeout_seconds: 30              # API calls
  work_timeout_seconds: 0          # 0 = no overall deadline
  upload_timeout_seconds: 0        # 0 = no upload-only deadline

agent_key: "YOUR_AGENT_KEY"
client_encryption_key_b64: "YOUR_CLIENT_ENCRYPTION_KEY_B64"

backup:
  source_key: "dir_backup"
  name: "Directory Backup"
  description: "Archive current directory via tar"

source:
  type: "tar"
  backup_command: "tar -cf - ."
  

Field reference

Key Description
bv.api_base Base URL for Backup Verified API calls.
bv.timeout_seconds Timeout for API calls used during backup initialization and completion. Default recommended: 30.
bv.work_timeout_seconds Optional overall deadline for dump/encrypt/upload. Use 0 for no overall deadline (recommended for large backups).
bv.upload_timeout_seconds Optional deadline for upload only. Use 0 for no upload deadline.
agent_key Authenticates the agent to Backup Verified.
client_encryption_key_b64 Client encryption key (base64). Keep it safe—without it, backups cannot be decrypted.
backup.source_key Stable ID for this backup source (used for grouping/history). Avoid changing it casually.
backup.name Friendly name shown in the portal.
backup.description Optional description shown in the portal.
source.type Label shown in the portal (examples: mysql, postgres, tar).
source.backup_command Command that writes backup bytes to STDOUT. The agent runs it and uploads the encrypted result.

Running the agent

Run the agent from the directory containing your config file.

bv-agent validate-config -config bv-agent.yml
bv-agent backup -config bv-agent.yml

After a successful run, you should see the backup listed in your portal dashboard.

Backup sources

Backup Verified works with any tool that can stream backup data to STDOUT. For copy-and-paste recipes, see the Recipes page.

Databases

mysqldump, pg_dump, and other logical exports.

Files & directories

tar streams of app servers, uploads, and config snapshots.

Anything that streams

If it can write bytes to STDOUT, the agent can back it up.

Scheduling

Most users schedule backups using cron or a system scheduler.

# Example cron (daily at 2:15am)
15 2 * * * /usr/local/bin/bv-agent backup -config /path/to/bv-agent.yml

Verification

Backup Verified verifies the integrity of stored backups and reports verification status in the portal.

Upload completeness

Confirms the backup was fully received and stored.

Integrity checks

Validates the stored backup remains consistent over time.

Restore

Download the encrypted backup from the portal, decrypt locally, then restore using your normal tools.

# Decrypt to a file (example)
bv-agent decrypt --in backup.bin.enc --out backup.out --config ./bv-agent.yml
# If your backup is a tar stream:
tar -xf backup.out -C /path/to/restore/
# If your backup is a SQL dump:
mysql -u root -p database_name < backup.out

Security model

Backups are compressed and encrypted locally before any data is uploaded. Backup Verified cannot read your backup contents.

Keys stay with you

Keep multiple secure copies of your encryption key.

Agent authentication

The agent uses your agent key to authenticate to the service.

Troubleshooting

The command runs, but no backup appears in the portal

Confirm your agent_key and bv.api_base are correct, then run validate-config.

tar backups fail or produce empty uploads

Make sure tar writes to STDOUT using -cf -.

Timeouts

bv.timeout_seconds applies to API calls. For long backups, leave work_timeout_seconds and upload_timeout_seconds at 0 (no deadline), or set them if you want a hard cap.

FAQ

Can Backup Verified read my backups?

No. Backups are encrypted locally before upload.

What happens if I lose my encryption key?

Backups cannot be decrypted without the key. Store multiple secure copies.

How fast are backups?

Click here to view benchmark data.

Can I use zip?

Yes. Any command that writes bytes to STDOUT works. For example: zip -r - . (The agent will still compress and encrypt the stream; zip is mainly listed here for familiarity.)

Do I need to change anything in Backup Verified to back up a new system?

Create a new config with a new backup.source_key and a streaming command for that system.