Skip to content

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