BaaS Introduction
Backup as a Service (BaaS) helps you set up backup and restore workflows without having to build and maintain your own backup system.
Use the Go SDK, JavaScript/TypeScript SDK, or CLI to implement authentication, optional workspace-level access control, automated backup jobs, snapshot-based recovery, and backup lifecycle operations. Backup data is stored on Lighthouse for long-term retention.
Every new account starts with a free workspace that includes 5 GB of storage. No setup or payment is required to begin backing up. Past 5 GB, upgrade to paid storage before retaining additional backup data; see pricing.
What you can do with BaaSโ
- Authenticate using an API key or email/password
- Organize backups by workspace for teams and projects
- Manage members, roles, and scope-based permissions
- Create and rotate API keys for cron/CI backup jobs
- Incremental, content-addressed backups โ only changed data is uploaded (FastCDC chunking + deduplication)
- Optionally encrypt backup data client-side before upload
- Compress backup data to reduce storage size and speed up transfer
- Verify backup integrity with checksums before recovery and restore operations
- Upload backup data and manage snapshots (list, inspect, prune, delete, restore)
Portal, SDK, and CLIโ
BaaS has three surfaces that work together:
| Surface | Host | Who uses it | What for |
|---|---|---|---|
| Web portal | baas.lighthouse.storage | Humans | Log in, manage workspaces & members, mint API keys, browse snapshots |
| SDK (Go / JS) | baas-api.lighthouse.storage | Your servers / CI | Integrate backups, restores, and snapshot lifecycle into code |
CLI (baas) | baas-api.lighthouse.storage | Operators, scripts, CI | Run backups, restores, and snapshot lifecycle from the terminal |
With the Go SDK, point APIURL at the API host (https://baas-api.lighthouse.storage) when you create the client. The JS SDK and CLI target the API host internally, so there is no API URL to set.
How this documentation is organizedโ
The default path is a solo quickstart: sign in, create one API key, create a dump, then upload it as a snapshot. Team administration is an optional layer you can add when you need shared workspaces, members, roles, or scoped permissions.
Solo quickstart:
- Web Portal & Free Workspace โ sign in and use your default workspace
- API Keys โ create the key used by the SDK or CLI
- Backup database (quick reference) โ create a local dump
- Upload Backup Data and Manage Snapshots โ upload the dump and verify the snapshot
Optional team layer:
- Workspaces and members
- Roles, scopes, and permissions
- Authentication โ API key client setup
- Troubleshooting
Tutorials โ full backup recipes:
- Tutorials overview
- Per-database dumps: PostgreSQL, MySQL, SQLite, MongoDB, Amazon DynamoDB, Amazon S3
- Automated backup with scheduling โ dump + upload + cron
Developer workflowโ
A typical implementation pattern is:
- Run a scheduled database dump job that updates one rolling dump file
- Call the SDK
Backup()/backup()flow orbaas backupfrom automation to upload it as a new snapshot - Enable client-side encryption when your backup policy requires customer-managed encryption keys
- Use snapshots as immutable restore points; apply a retention/prune policy
- Periodically validate restore paths in a recovery drill