Skip to main content

Quick Start Guide

This guide walks you through creating your first backup in Zerobyte, from initial setup to verifying a successful backup.
This guide assumes you’ve already installed Zerobyte and can access the web interface.

Overview

Setting up a backup involves three key steps:
1

Add a Volume

Define the source data you want to backup
2

Create a Repository

Set up an encrypted storage destination for your backups
3

Configure a Backup Job

Connect your volume to your repository with scheduling and retention policies
Let’s walk through each step.

First-Time Setup

Create Your Admin Account

When you first access Zerobyte at http://<your-server-ip>:4096, you’ll be prompted to create an admin account:
1

Open Zerobyte

Navigate to the URL you configured in BASE_URL during installation
2

Complete Registration

Enter your desired username, email, and password for the admin account
3

Save Restic Password

After registration, you’ll be prompted to download your Restic encryption password. This is critical - store it safely!
Critical: The Restic password is used to encrypt all your backups. If you lose this password, you will not be able to restore your data. Save it in a password manager or secure location immediately.

Step 1: Add a Volume

A volume represents the source data you want to backup. Zerobyte supports various volume types including local directories, NFS shares, SMB shares, WebDAV, and SFTP.

Adding a Local Directory

For this quick start, we’ll add a local directory. First, ensure the directory is mounted into your Zerobyte container.

Mount the Directory

Update your docker-compose.yml to mount the directory you want to backup:
docker-compose.yml
services:
  zerobyte:
    image: ghcr.io/nicotsx/zerobyte:v0.29
    container_name: zerobyte
    restart: unless-stopped
    # ... other configuration ...
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /var/lib/zerobyte:/var/lib/zerobyte
      - /path/to/your/data:/data  # Add this line
Restart the container to apply changes:
docker compose down
docker compose up -d

Create the Volume in Zerobyte

1

Navigate to Volumes

In the Zerobyte web interface, click on Volumes in the sidebar
2

Create New Volume

Click the Create Volume button
3

Configure Volume

Fill in the volume details:
  • Name: Give it a descriptive name (e.g., “My Documents”)
  • Type: Select “Directory”
  • Path: Enter the container path (e.g., /data)
4

Save Volume

Click Create to save the volume configuration
The volume path must match the path inside the container, not the host path. In the example above, even though the host path is /path/to/your/data, you would enter /data as the volume path.

Adding Remote Volumes

Zerobyte also supports remote volume types:
Configure an NFS share:
  • Host: NFS server hostname or IP
  • Export: NFS export path (e.g., /mnt/data)
  • Options: Mount options (optional, e.g., vers=4,soft)
Remote volumes require the full installation with SYS_ADMIN capability and /dev/fuse device. See the Installation guide for details.

Step 2: Create a Repository

A repository is the encrypted storage destination where your backups will be stored. Zerobyte supports multiple repository backends.

Creating a Local Repository

For this quick start, we’ll create a local repository:
1

Navigate to Repositories

Click on Repositories in the sidebar
2

Create New Repository

Click the Create Repository button
3

Configure Repository

Fill in the repository details:
  • Name: Descriptive name (e.g., “Local Backup Repository”)
  • Type: Select “Local”
  • Path: Enter a path for the repository (e.g., /var/lib/zerobyte/repositories/local-backup)
4

Initialize Repository

Click Create and Initialize. Zerobyte will create and initialize the Restic repository with encryption.
Repository initialization may take a few seconds. Zerobyte will create the repository structure and configure encryption using your Restic password.

Cloud Storage Repositories

For production use, consider using cloud storage for offsite backups:
Configure S3-compatible storage (AWS S3, MinIO, Wasabi, Backblaze B2, etc.):
Repository Configuration
Type: S3
Endpoint: s3.amazonaws.com (or custom endpoint)
Region: us-east-1
Bucket: my-backup-bucket
Path: backups/zerobyte (optional prefix)
Access Key ID: AKIAIOSFODNN7EXAMPLE
Secret Access Key: env://S3_SECRET_KEY
Use env:// secret references to avoid storing credentials in the database. See Installation - Docker Secrets.

Step 3: Create a Backup Job

A backup job connects a volume to a repository and defines when and how backups should run.
1

Navigate to Backups

Click on Backups in the sidebar
2

Create New Backup Job

Click the Create Backup Job button
3

Configure Basic Settings

  • Name: Descriptive name (e.g., “Daily Documents Backup”)
  • Volume: Select the volume you created earlier
  • Repository: Select the repository you created earlier
  • Enabled: Toggle on to enable the job
4

Configure Schedule

Set when backups should run:
  • Schedule Type: Choose “Simple” or “Cron”
  • Simple: Select daily, weekly, etc.
  • Cron: Enter cron expression (e.g., 0 2 * * * for 2 AM daily)
  • 0 2 * * * - Daily at 2:00 AM
  • 0 2 * * 0 - Weekly on Sunday at 2:00 AM
  • 0 2 1 * * - Monthly on the 1st at 2:00 AM
  • 0 */6 * * * - Every 6 hours
  • 0 0 * * 1-5 - Weekdays at midnight
5

Configure Retention Policy

Define how long backups should be kept:
Example Retention Policy
Keep Last: 7 daily backups
Keep Last: 4 weekly backups
Keep Last: 6 monthly backups
Keep Last: 1 yearly backup
Retention policies automatically prune old backups to save storage space. Restic’s deduplication ensures you only store unique data.
6

Configure Paths (Optional)

By default, the entire volume is backed up. You can specify:
  • Include paths: Only backup specific subdirectories
  • Exclude paths: Exclude specific files or patterns (e.g., *.tmp, node_modules/)
7

Advanced Options (Optional)

Configure advanced settings:
  • Compression: Enable to reduce backup size (slight CPU overhead)
  • Bandwidth Limit: Limit upload/download speed
  • Parallel Upload: Number of parallel file uploads
8

Save Backup Job

Click Create to save the backup job. It will run according to the schedule you configured.

Step 4: Run Your First Backup

Instead of waiting for the scheduled time, let’s run the backup immediately:
1

Find Your Backup Job

In the Backups section, locate the job you just created
2

Run Backup Manually

Click the Run Now button (play icon) next to your backup job
3

Monitor Progress

Watch the backup progress in real-time:
  • Files scanned
  • Data processed
  • Upload progress
  • Estimated time remaining
4

Wait for Completion

The backup will show a success status when complete. Duration depends on data size and storage speed.
During the first backup, all data is uploaded. Subsequent backups are much faster due to Restic’s incremental backup and deduplication.

Step 5: Verify Your Backup

After the backup completes, verify it was successful:
1

View Backup Details

Click on your backup job to view details
2

Check Snapshots

You should see at least one snapshot listed with:
  • Snapshot timestamp
  • Number of files backed up
  • Total size
  • New data added (vs. deduplicated)
3

Browse Backup Contents

Click on a snapshot to browse its contents. You can:
  • Navigate the directory structure
  • View file sizes and modification times
  • Search for specific files
4

Test Restore (Optional)

For peace of mind, test restoring a file:
  • Select a file from the snapshot browser
  • Click Restore
  • Choose restore location
  • Verify the file was restored correctly
By default, restored files are placed back in their original location. Be careful not to overwrite current files. You can specify an alternate restore path if needed.

Understanding Backup Status

Your backup dashboard shows the status of all backup jobs:
StatusDescription
SuccessBackup completed without errors
RunningBackup currently in progress
FailedBackup encountered an error (check logs)
ScheduledBackup waiting for next scheduled run
DisabledBackup job is disabled and won’t run
Click on any backup job to view detailed logs, snapshot history, and statistics.

Monitoring Your Backups

Zerobyte provides several ways to monitor backup health:

Dashboard Overview

The main dashboard shows:
  • Total number of backup jobs
  • Storage usage across all repositories
  • Recent backup activity
  • Failed backups requiring attention

Backup Job Details

Each backup job displays:
  • Last run time and status
  • Next scheduled run
  • Number of snapshots
  • Total backup size
  • Backup duration trends

Repository Health

Repository details show:
  • Total size and file count
  • Deduplication ratio
  • Number of snapshots
  • Integrity check status
Regularly check repository integrity using the Check button in the repository details. This verifies backup data hasn’t been corrupted.

Next Steps

Now that you have a working backup, consider:

Add More Volumes

Back up additional directories or remote shares

Set Up Cloud Storage

Configure offsite backups to S3, Google Cloud, or Azure

Configure Notifications

Get alerted when backups fail or complete

Optimize Retention

Fine-tune retention policies to balance storage and history

Common Tasks

Restoring Data

To restore data from a backup:
1

Navigate to Backup

Go to Backups and select the backup job containing the data you need
2

Select Snapshot

Choose the snapshot from the time period you want to restore from
3

Browse and Select

Browse the file tree and select files/folders to restore
4

Choose Restore Location

Decide whether to restore to original location or specify a new path
5

Restore

Click Restore and wait for the operation to complete

Pausing a Backup Job

To temporarily stop a backup from running:
  1. Navigate to the backup job
  2. Toggle the Enabled switch to off
  3. The job will skip scheduled runs until re-enabled

Viewing Backup Logs

To troubleshoot issues or view detailed backup information:
  1. Click on a backup job
  2. Navigate to the Logs tab
  3. View detailed output from Restic including:
    • Files processed
    • Errors encountered
    • Performance statistics

Deleting Old Snapshots

Backups are automatically pruned according to retention policies, but you can manually delete snapshots:
  1. Navigate to backup job
  2. Select the snapshot you want to delete
  3. Click Delete Snapshot
  4. Confirm deletion
Deleting snapshots is irreversible. Ensure you don’t need the data before deleting.

Troubleshooting

Backup Failed: Permission Denied

Ensure the volume directory has proper permissions:
# On the host system
sudo chmod -R 755 /path/to/your/data

Backup Running Slowly

Check:
  • Network bandwidth (for cloud repositories)
  • Disk I/O performance
  • Enable compression if uploading large compressible files
  • Adjust parallel upload settings

Repository Initialization Failed

Verify:
  • Repository path is writable
  • For cloud repositories, credentials are correct
  • Network connectivity to cloud storage

Can’t Find Mounted Directory

Ensure:
  • Directory is mounted in docker-compose.yml
  • Container was restarted after mounting: docker compose restart
  • Path matches the container path, not host path

Getting Help

If you encounter issues:

Check Logs

View detailed logs with docker compose logs -f zerobyte

GitHub Issues

Report bugs or request features at github.com/nicotsx/zerobyte/issues

Documentation

Explore the full documentation for advanced topics

Community

Join discussions and get help from other users
When reporting issues, include:
  • Zerobyte version (visible in UI footer)
  • Docker and Docker Compose versions
  • Relevant logs from docker compose logs zerobyte
  • Steps to reproduce the issue

Conclusion

You’ve successfully:
  • ✅ Created an admin account and secured your Restic password
  • ✅ Added a volume to backup
  • ✅ Created a repository for encrypted storage
  • ✅ Configured and ran your first backup job
  • ✅ Verified your backup was successful
Your data is now protected with encrypted, deduplicated backups. Zerobyte will continue to run backups automatically according to your schedule.
Important Reminder: Keep your Restic encryption password safe! Without it, you cannot restore your backups. Consider storing it in multiple secure locations.

Build docs developers (and LLMs) love