Skip to content

Eight.ly Backup Server (EBS)

Eight.ly Backup Server is a dedicated backup appliance for Eight.ly OS. A single Go binary with content-addressable deduplication, purpose-built for backing up VMs, containers, Docker volumes, NAS configuration, and app data.

Included at no charge with every Eight.ly licence. Nothing else in Eight.ly is free, but EBS and the remote Agent are — run EBS on its own machine or VM so your backups live on separate hardware from your data.

What It Does

Feature Description
Deduplication Content-addressable chunk store, keyed by SHA-256 hash. Only changed data is stored.
Encryption Backups are encrypted at rest with AES-256-GCM. Each datastore has its own encryption key.
Retention Policies keep_last, hourly, daily, weekly, monthly, yearly. Automatic pruning of expired snapshots.
VM Backups Full virtual machine backup including disk images and configuration.
Container Backups Docker volume backup, Compose stack backup (compose files, env, port mappings).
NAS Config Backup SnapRAID, MergerFS, SMB/NFS share configuration.
Verify & GC Data integrity verification and garbage collection for orphaned chunks.
Web Dashboard Full management UI — datastores, jobs, content browser, system monitoring.

Architecture

Eight.ly OS  ──(authenticated API)──>  Eight.ly Backup Server
                                              │
                                     Content-Addressable
                                       Chunk Store
                                        (SHA-256)

EBS is a Go binary with a React frontend. The backend handles session-based uploads, deduplication, restore, garbage collection, verification, and pruning. The frontend provides datastore management, job scheduling, content browsing, and system monitoring.

Connecting to EOS

Add EBS as a storage backend

  1. Navigate to Settings > Backup in Eight.ly OS
  2. Enter your EBS server URL, credentials, and datastore name
  3. Save

Create backup jobs

  1. Go to Backup in the sidebar
  2. Create a backup job
  3. Select what to back up:
    • System config — Eight.ly OS settings, user accounts, app configurations
    • App data — Docker volumes, Compose stacks, application databases
    • VMs — full virtual machine disk images and configuration
    • NAS config — SnapRAID, MergerFS, SMB/NFS share definitions
  4. Set the schedule and retention policy
  5. Save

Manual backup

Trigger a backup at any time from the Backup page by running it on any configured job.

VM Backups

Each VM has a Backup tab in its detail view (Infrastructure > VM > Backup):

  • Run an immediate backup
  • View backup history with timestamps and sizes
  • Restore from any previous snapshot
  • Restore in-place (the VM must be stopped first — restore overwrites the existing VM's disk)

Docker Backups

  • Docker volume backup — back up named volumes with deduplication
  • Compose stack backup — preserves compose files, .env files, port mappings, and volume mounts
  • Full-system restore wizard — restore an entire Docker environment from a single backup

Encryption

Backups are encrypted with AES-256-GCM. Each backup datastore has its own encryption key, so a compromise of one datastore's key doesn't expose others.

Retention Policies

Policy Description
keep_last Keep the N most recent snapshots
keep_hourly Keep one snapshot per hour for the last N hours
keep_daily Keep one snapshot per day for the last N days
keep_weekly Keep one snapshot per week for the last N weeks
keep_monthly Keep one snapshot per month for the last N months
keep_yearly Keep one snapshot per year for the last N years

Pruning runs automatically after each backup job completes.

Keeping local backups from filling the disk

Eight.ly OS also writes backups to local disk (as opposed to sending them to EBS), and it protects the disk they land on:

  • Local backups for a given target keep only the newest few by default, pruning older ones automatically.
  • Before writing a local backup, Eight.ly checks that the destination has enough free space left over — enough margin is required that a backup job can't run a disk down to nothing.
  • The dashboard's health page warns when a disk the system depends on (the boot disk, or wherever app/VM/container data lives) gets close to full, separately from backup jobs.

This is recent behavior — check your dashboard's own free-space and retention settings for what applies to your install, rather than assuming a specific default.

Restore

  1. Navigate to Backup in the sidebar
  2. Select the backup job
  3. Browse available restore points by date
  4. Select files or volumes to restore
  5. Choose restore destination
  6. Restore

For VM restores, use the VM's Backup tab to select a snapshot and restore in-place. Restore is in-place only — stop the VM first, since the restore overwrites the existing VM's disk. There is no restore-to-a-new-VM option.

EBS Dashboard

EBS has its own web dashboard for direct management:

  • Datastores — create, configure, and monitor backup datastores with dedup statistics
  • Content browser — browse backup contents, download individual files
  • Jobs — prune, GC, sync, and verify job management
  • System — storage/disk management, certificates, access control, notifications
  • Shell — web terminal for direct server access

Access the EBS dashboard at your EBS server's own address.

Installation

EBS ships as a single Go binary, included at no charge with every Eight.ly licence.

sudo systemctl enable --now eightly-backup

Requirements: any modern Linux distribution, 4+ GB RAM, a dedicated storage volume for backup data.

Resources