Requirements
SAAS Package (Master)
Python libraries
| Library |
Required |
Used for |
paramiko |
Yes — declared in sadeem_saas_base |
SSH connections to root servers (command execution, monitoring, code server, directory setup) |
cryptography |
Yes — ships with Odoo |
Fernet encryption of stored credentials and slave transport payloads |
requests |
Yes — ships with Odoo |
All HTTP integrations: Portainer, Nginx Proxy Manager, Cloudflare, backup server, ntfy / FCM |
google-auth |
Optional |
Only for the FCM v1 API. Without it, FCM v1 notifications fail with "google-auth library is not installed" — install with pip install google-auth |
unidecode |
Optional |
Better transliteration of non-Arabic, non-Latin names into domain / branch names. Without it, unsupported characters become - |
Odoo modules
| Module |
Notes |
queue_job |
Required. Long-running work (builds, Git pushes, migrations, diagnosis) runs as background jobs. The package declares its own channels: Git Push Channel, Subscription Migrations |
sale, account, portal, mail, web |
Standard Odoo modules, pulled in as dependencies |
Queue job workers
Make sure the Odoo server is started with the queue_job runner enabled and enough workers. Without a running job runner, subscriptions stay Queued and migrations never leave the Queued state.
SAAS Package Slave (customer instances)
| Requirement |
Notes |
| Python libraries |
none |
sadeem_saas_slave loaded server-wide |
The Sadeem Docker images do this. The /sadeem/database/* routes it provides are what the backup server restores into — including during a server migration |
SAAS Package Backup (backup server)
Python libraries
| Library |
Required |
Used for |
boto3 |
Optional |
S3-compatible cloud storage (sadeem_saas_backup_manager_s3) |
Odoo modules
| Module |
Notes |
queue_job |
Required. Backups and restores run asynchronously |
Network
| From |
To |
Purpose |
| Master |
Root servers (SSH port) |
Command execution, monitoring, code server |
| Master |
Portainer / Nginx Proxy Manager / Cloudflare APIs |
Provisioning and routing |
| Master |
Backup server (HTTP/HTTPS) |
Backup registration, backup and restore requests |
| Backup server |
Master (HTTP/HTTPS) |
Restore completion callbacks (/sadeem/migration/restore/<token>) |
| Backup server |
Target instances |
Streaming a restore into the instance's slave routes |