Automated Schedules
Daily, weekly, and monthly backups
One-Click Restore
Restore to any backup point instantly
Storage Versioning
Full version history for every object
Encrypted Storage
Backups encrypted at rest in B2
Overview
The Backup service provides automated protection for your data across two layers: database backups using pg_dump and storage object versioning using B2's S3-compatible versioning API.
Backups are stored in a dedicated B2 bucket (sylphx-backups) separate from your app's storage bucket, ensuring backups survive even if you accidentally delete your storage content.
Database Backups
Database backups use pg_dump to create consistent snapshots of your PostgreSQL database. Backups are gzip-compressed and stored in B2.
| Schedule | Time | Retention | Type |
|---|---|---|---|
| Daily | 03:00 UTC | 7 days | Automatic |
| Weekly | Sunday 03:00 UTC | 30 days | Automatic |
| Monthly | 1st of month | 90 days | Automatic |
| Manual | On demand | 90 days | User triggered |
backups/db/{appId}/{envId}/{timestamp}.sql.gz in B2. The timestamp uses ISO 8601 format.Manual Backups
Trigger a backup at any time from the console or via the API:
Console Backup
API/CLI Backup
# Restore a backup via CLI
sylphx backup restore backup_abc123 \
--env production \
--confirm
# Or via API
curl -X POST https://api.sylphx.com/v1/backups/backup_abc123/restore \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{"targetEnv": "production"}'Restoring a Backup
Restoring replaces the current database with the backup snapshot. This operation cannot be undone.
Create a pre-restore backup
Select the target backup
Confirm the restore
Storage Versioning
Enable versioning on storage buckets to preserve every version of every object. When versioning is enabled, uploads don't overwrite — they create new versions instead.
import { Sylphx } from '@sylphx/sdk'
const sylphx = new Sylphx({ secretKey: process.env.SYLPHX_SECRET_KEY })
// Enable versioning on a bucket
await sylphx.storage.enableVersioning('my-bucket')
// List versions for a file
const versions = await sylphx.storage.listVersions('my-bucket', 'uploads/document.pdf')
console.log(versions)
// [
// { versionId: 'v3', lastModified: '2026-02-21', isLatest: true },
// { versionId: 'v2', lastModified: '2026-02-20' },
// { versionId: 'v1', lastModified: '2026-02-19' }
// ]
// Restore a previous version
await sylphx.storage.restoreVersion('my-bucket', 'uploads/document.pdf', 'v2')Pricing
Backup storage is billed at the same rate as regular B2 storage:
- Backup storage: $0.025/GB/month
- Restore operations: Free
- Manual backups: Free (up to 10/day)
- Retention: Configurable (default: daily 7d, weekly 30d, monthly 90d)