Supported Repository Backends
Zerobyte supports multiple storage backends for repositories:- Local - Local filesystem storage
- S3 - Amazon S3 and S3-compatible storage (MinIO, Wasabi, etc.)
- R2 - Cloudflare R2
- GCS - Google Cloud Storage
- Azure - Azure Blob Storage
- SFTP - SSH File Transfer Protocol
- REST - Restic REST server
- Rclone - Any backend supported by rclone
All repositories use end-to-end encryption. Your backup data is encrypted before leaving the Zerobyte server and can only be decrypted with the repository password.
Creating a Repository
Configure Basic Settings
- Name: A descriptive name for the repository (e.g., “AWS S3 Backups”)
- Backend Type: Select your storage backend
- Compression Mode: Choose compression level (off, auto, or max)
Choose Repository Mode
Select whether to create a new repository or connect to an existing one:
- New Repository: Initialize a fresh repository (recommended)
- Existing Repository: Connect to a repository created outside Zerobyte
Configure Backend Settings
Fill in the connection details based on your selected backend type. See the sections below for type-specific configuration.
Set Repository Password
- Auto-generated: Zerobyte creates a random password (recommended)
- Custom Password: Provide your own password
Configure Advanced Options (Optional)
- Upload Bandwidth Limit: Throttle upload speed (Kbps, Mbps, or Gbps)
- Download Bandwidth Limit: Throttle download speed
- Custom CA Certificate: For self-signed SSL certificates
- Insecure TLS: Skip TLS certificate verification (not recommended)
Repository Backend Configuration
Local
Store backups on the local filesystem or network-mounted storage. Configuration:- Path: Absolute path to the repository directory (e.g.,
/backup-repo)
S3
Amazon S3 or S3-compatible storage providers. Configuration:- Endpoint: S3 endpoint URL (e.g.,
s3.amazonaws.comors3.us-west-2.amazonaws.com) - Bucket: S3 bucket name
- Access Key ID: AWS access key ID
- Secret Access Key: AWS secret access key
R2
Cloudflare R2 object storage. Configuration:- Endpoint: R2 endpoint from your Cloudflare dashboard
- Bucket: R2 bucket name
- Access Key ID: R2 access key ID
- Secret Access Key: R2 secret access key
GCS
Google Cloud Storage. Configuration:- Bucket: GCS bucket name
- Project ID: Google Cloud project ID
- Credentials JSON: Service account credentials in JSON format
Azure
Microsoft Azure Blob Storage. Configuration:- Container: Azure blob container name
- Account Name: Storage account name
- Account Key: Storage account access key
- Endpoint Suffix: Azure cloud endpoint (optional, defaults to
core.windows.net)
SFTP
Store backups on a remote server via SSH. Configuration:- Host: SFTP server hostname or IP
- Port: SSH port (default: 22)
- User: SSH username
- Path: Remote directory path for the repository
- Private Key: SSH private key for authentication
- Skip Host Key Check: Disable strict host key checking (default: enabled)
- Known Hosts: Custom known_hosts file content (optional)
REST
Restic REST server for efficient backup storage. Configuration:- URL: REST server URL (e.g.,
http://localhost:8000/) - Username: Authentication username (optional)
- Password: Authentication password (optional)
- Path: Repository path on the server (optional)
Rclone
Use any rclone-supported backend (Google Drive, Dropbox, OneDrive, etc.). Prerequisites:- Configure rclone remotes on the host system or mount the rclone config directory
- Remote: Name of the configured rclone remote
- Path: Path within the remote for the repository
Compression Modes
Choose the appropriate compression mode for your use case:- Off: No compression (fastest, largest storage)
- Auto: Automatic compression based on file type (recommended)
- Max: Maximum compression (slowest, smallest storage)
Bandwidth Limiting
Control upload and download speeds to avoid saturating your network connection. Configuration:- Enable the bandwidth limit
- Set the value (e.g., 10)
- Choose the unit (Kbps, Mbps, or Gbps)
Using Secret References
Instead of storing credentials in the database, reference them from environment variables or Docker secrets. Syntax:env://VAR_NAME- Read from environment variablefile://SECRET_NAME- Read from/run/secrets/SECRET_NAME
docker-compose.yml:
Managing Repositories
Repository Health
Zerobyte periodically checks repository health and displays the status:- Healthy (green): Repository is accessible and functioning
- Error (red): Connection or integrity issue detected
- Unknown (gray): Health status not yet determined
Repository Statistics
View storage usage, compression ratio, and snapshot count by clicking on a repository.Repository Doctor
If a repository shows errors, use the Doctor function to:- Unlock stale locks
- Check repository integrity
- Repair index files
Unlocking Repositories
If backups fail with “repository is locked” errors, you can manually unlock the repository:- Navigate to the repository details
- Click Unlock Repository
- Confirm the action
Best Practices
Use 3-2-1 backup strategy
Use 3-2-1 backup strategy
- Keep 3 copies of your data
- Store on 2 different media types
- Keep 1 copy offsite
Secure your repository passwords
Secure your repository passwords
- Store passwords in a password manager
- Use strong, randomly generated passwords
- Don’t reuse passwords across repositories
- Keep offline backups of repository passwords
Monitor repository health
Monitor repository health
- Set up notifications for repository errors
- Regularly check repository statistics
- Test restores periodically to verify backup integrity
Optimize storage costs
Optimize storage costs
- Use lifecycle policies on cloud storage to move old data to cheaper tiers
- Configure appropriate retention policies to limit storage growth
- Use “auto” compression mode for best size/speed balance
Troubleshooting
Repository initialization fails
Repository initialization fails
- Verify credentials and permissions
- For S3/GCS/Azure, ensure the bucket/container exists
- Check network connectivity to the storage backend
- Review error messages in the repository details
Authentication errors
Authentication errors
- Double-check access keys and passwords
- Verify secret references resolve correctly
- For cloud providers, check IAM/RBAC permissions
SSL/TLS certificate errors
SSL/TLS certificate errors
- For self-signed certificates, provide the CA certificate
- As a last resort, enable “Insecure TLS” (not recommended for production)
Cannot connect to existing repository
Cannot connect to existing repository
- Verify the password matches exactly
- Ensure the repository was created with Restic
- Check that the backend configuration points to the correct location
Next Steps
Add Volumes
Configure data sources to back up
Create Backup Jobs
Schedule automated backups from volumes to repositories
