Release history
zerobyte releases
Backup automation for self-hosters. Built on top of restic
All releases
34 shown
- Outbound webhook destinations now require an allowlist defined by the new WEBHOOK_ALLOWED_ORIGINS environment variable; only Generic Webhook, Gotify, self‑hosted ntfy servers, and Custom Shoutrrr URLs are affected.
- Pre‑ and post‑backup webhooks for backup schedules
- Notification delivery health visibility (status, last check time, last error)
Full changelog
⚠️ Action required
- Outbound webhook destinations now require an allowlist: Webhook calls must target origins listed in the new
WEBHOOK_ALLOWED_ORIGINSenvironment variable.- This applies only to Generic Webhook, Gotify, self-hosted ntfy servers, and Custom Shoutrrr URLs
- Example:
WEBHOOK_ALLOWED_ORIGINS=https://hooks.example.com,http://host.docker.internal:8080
After updating your instance, test your notifications!
New features
- Pre and post-backup webhooks: Backup schedules can now run optional webhook calls before and after a backup. This enables integrations such as waking external systems, triggering automation, or notifying other services around backup execution. Check out the new backup webhooks documentation
- Notification delivery health is now visible: Notification destinations now track and display health status, last check time, and last delivery error, making notification problems easier to diagnose.
Improvements
- Sortable tables: Repositories, volumes, and notifications can now be sorted by table columns, making large setups easier to browse and manage.
- Improved backups for FUSE-like volumes: Backups for rclone, SFTP, and WebDAV volumes now default to Restic’s --ignore-inode behavior when needed, reducing false file-change detection issues
- Bump rclone to 1.74.0
Bug fixes
- Fixed SMTP notifications with special characters in credentials: Email notification passwords and usernames containing special characters are now encoded correctly.
- Mirror repositories can be backfilled from the UI with selective snapshot syncing
- Backups verify volume health before starting and fail fast or auto-remount if unreachable
Full changelog
New features
- Mirror repositories can now be backfilled from the UI by reviewing missing snapshots and syncing only the ones you choose. This is especially useful when adding a mirror to an existing backup schedule. Thanks @eric-hess for the implementation
Improvements
- New documentation site: Zerobyte now has a dedicated docs website at zerobyte.app
Bug fixes
- Backups now verify volume health before starting: If a volume has gone stale or become unreachable, Zerobyte now fails fast or remounts first when auto-remount is enabled
- Slack webhook channel overrides are no longer configurable
- Automatic backup retries with configurable retry count and delay
- APP_SECRET can be read from APP_SECRET_FILE for Docker and Kubernetes secret-based setups
Full changelog
We now have a Discord server
New features
- Automatic backup retries: scheduled backups now retry after failures with configurable retry count and delay. Thanks @Der-Penz
for the implementation - Zerobyte can now read
APP_SECRETfromAPP_SECRET_FILE, which is useful for Docker and Kubernetes secret-based setups.
Bug fixes
- Snapshot loading is more reliable on large repositories: repositories with large snapshot lists no longer fail because of command output buffer limits
- Slack webhook channel overrides are no longer configurable since it is not supported initially by Slack
- Rclone remotes are now correctly detected when using a custom
RCLONE_CONFIG_DIR - SMB-backed volumes now handle UTF-8 filename encoding more reliably, reducing backup failures on shares with special characters in file names.
- Dedicated edit pages for backups, volumes, and notifications with consistent UX redesign
- Fixed mirror copy concurrency deadlocks
- Fixed snapshot browsing for Windows and non-POSIX paths
Full changelog
- Dedicated edit pages for backups, volumes, and notifications with redesign for consistent UX across all the pages.
- Fix language detection bug when the browser sends multiple locales with quality param
- Fix mirror copy concurrency causing dead locks
- Fixed snapshot browsing for snapshots created from Windows or other non-POSIX paths.
- SFTP now requires known_hosts unless host key verification is explicitly skipped
- Stricter SFTP configuration requiring known_hosts verification
- On-demand backup creation
- Custom date/time format preferences
- Enhanced volume filtering
- Fix telegram notifications token encoding - Propagate RCLONE_NO_CHECK_CERTIFICATE when skip TLS is enabled - Surface more details to the frontend when a restic error happens.
- Backup include paths with special characters require re-selection
- Backup errors displayed in UI
- Protected app internal files from accidental overwrite
- TRUST_PROXY environment variable
- Dynamic secret references (env://, file://) removed
- Migration to provisioning files required
- Snapshot order toggle
- Better special character filename handling
- OIDC SSO support
- Organization switcher
- Advanced restic flag parameters
- Replaced node-cron with a custom task scheduler implementation. It was causing server crashes on DST. Thanks @vutsalsinghal for the fix
- Fix glob custom include patterns to expand relative to the volume root
- Fix a schema issue that would skip the display of the backup progress if restic was not reporting any "current file"
- Snapshot downloads with archive/file modes
- Repository storage/compression statistics
- Cached backup progress recovery
- Various UI and responsiveness fixes - Keep sidebar last state when reloading page - Fix local repository path on creation when using default path
- Restore progress card
- Editable repositories
- Dash support in usernames
- TanStack Start migration
- Image size reduction to 245MB
- Enhanced snapshot details
- Show retention tags in snapshots timeline for the user to understand better the retention policy applied - Fix volume page details when a volume short id is numerical - Bump Bun to 1.3.9
- Fix repository custom path selection - Downgrade Bun to 1.3.6 as last version was causing illegal instruction (132) error on some arm cpus
- File explorer pagination (500 items)
- Guest SMB mounting
- Custom email notification names
- Automatically fix the issue that was causing some users to be assigned the wrong org at login
Optimized repository diagnostics by removing slow read-data check from doctor operation, fixed doctor status staying in running state after manual cancellation, and removed unnecessary migration dependencies.
- BASE_URL environment variable now mandatory
- APP_SECRET environment variable mandatory
- Database automatic migration required
- Multi-user support
- Automatic data encryption
- Background doctor operation
- Auth system refactored with stricter username rules
- 2FA (TOTP) authentication
- Restic read caching
- Improved NFS compatibility
- Do not throw error directly in case of migration failure to give the opportunity for the user to fix the repository issue and re-run the migration
- SFTP volume backend
- Bulk snapshot actions
- Generic webhook notifications