Setup Backup Storage
This tutorial covers connecting the Sadeem Backup Manager to your Master Odoo instance and enabling automated backups for subscriptions.
Overview
Architecture: the Backup Server is separate
The Backup Server is a separate Odoo instance with sadeem_saas_backup_manager installed. It is not part of the Master Odoo. It is registered with the Master via Backup Server records that store the URL and API key. Full documentation for installing and configuring the Backup Server itself is maintained separately and is not part of this manual.
Backups are handled by a separate Odoo instance running sadeem_saas_backup_manager (and optionally sadeem_saas_backup_manager_s3 for cloud storage). The Master Odoo communicates with it over HTTP using an API key.
Master Odoo → HTTP API + API Key → Backup Server Odoo
├── Local backups (disk)
└── Cloud backups (S3-compatible)
Prerequisites
- A running Odoo instance with
sadeem_saas_backup_managerinstalled - An API key configured on that Backup Server
- Network access from the Master Odoo to the Backup Server
Backup Health States
Once backups are running, Sadeem monitors each subscription's backup freshness:
| State | Meaning | Condition |
|---|---|---|
| Normal | Backups are current | Last backup within 1 day |
| Warning | Backups are delayed | Last backup 1–5 days ago |
| Danger | Backups are stale or missing | Last backup more than 5 days ago, or no backups recorded |
These states appear on the subscription form and the operator dashboard.
Step 1: Add the Backup Server
Go to Infrastructure → Backup Servers → New.
| Field | Value |
|---|---|
| Name | Label, e.g. Main Backup Server |
| URL | Internal URL the Master uses to reach the Backup Server, e.g. http://backup-server:8069 |
| Download URL | Public URL for customer download links, e.g. https://backup.yourdomain.com |
| API Key | The API key configured on the Backup Server |
| Local Backup | Enable to store backups on the Backup Server's disk |
| Cloud Backup | Enable if sadeem_saas_backup_manager_s3 is installed |
Save the record.
Step 2: Set as Company Default (optional)
Go to Settings → Sadeem SaaS → Default Backup Server and select the server.
When a subscription is confirmed without a backup server explicitly assigned, it inherits this company default automatically.
Step 3: Sync Cloud Accounts (if using cloud backup)
Sync Cloud Accounts calls GET /sadeem/backup/cloud-accounts on the Backup Server and retrieves the list of configured cloud storage accounts. This lets the Master know which cloud destinations are available without duplicating credentials.
If cloud backup is enabled:
- Open the backup server record
- Click Sync Cloud Accounts
- A wizard lists all cloud storage accounts configured on the Backup Server
- Select the accounts to associate and confirm
The synced accounts are stored locally on the Master. Their UUIDs are included in the payload sent to the Backup Server when a subscription registers, so the Backup Server knows which cloud destinations to use for that subscription.
Tip
Re-run Sync Cloud Accounts any time you add a new cloud storage account on the Backup Server.
Cloud Provider Credentials Reference
When configuring cloud storage accounts on the Backup Server, use the following values for each provider:
| Provider | Endpoint URL | Access Key | Secret Key | Bucket | Region |
|---|---|---|---|---|---|
| AWS S3 | (leave blank — auto) | IAM Access Key ID | IAM Secret Access Key | bucket name | e.g. us-east-1 |
| Cloudflare R2 | https://<account_id>.r2.cloudflarestorage.com |
R2 API Token ID | R2 API Token Secret | bucket name | auto |
| Backblaze B2 | https://s3.<region>.backblazeb2.com |
Application Key ID | Application Key | bucket name | e.g. us-west-004 |
| MinIO | https://minio.yourdomain.com |
MinIO Access Key | MinIO Secret Key | bucket name | (any string) |
| Custom S3 | your endpoint URL | access key | secret key | bucket name | required |
Note
These credentials are entered in the Backup Server Odoo instance, not in the Master. The Master only stores the UUIDs of the accounts it has synced.
Step 4: Assign a Backup Server to a Subscription
Three ways, in order of precedence:
| Method | Where to set it |
|---|---|
| Manual | Backup Server field on the subscription form |
| Environment default | Backup Server on the Portainer environment or DBFilter server group |
| Company default | Settings → Sadeem SaaS → Default Backup Server |
Step 5: Registration Happens Automatically
When a subscription finishes building and reaches Running, Sadeem registers it with the Backup Server automatically. The Backup Server returns a UUID that Sadeem stores in the subscription's Backup UUID field.
Once registered:
- The Backup tab on the subscription form shows backup history
- Customers can request backups from the portal
- Scheduled backups run on the Backup Server
Verifying
On the subscription form confirm:
- Backup Server is set
- Backup UUID is populated
- Backup State shows
Normal
On the customer portal (/my/subscriptions), the Backup tab is visible and shows backup lines.