Skip to content

Prerequisites

Before installing the Sadeem SaaS Package, make sure you have everything below in place. Missing any of these will block provisioning or cause runtime errors after installation.


Odoo Instance (Master)

This is the Odoo server where you install the Sadeem modules — your management plane.

Requirement Detail
Odoo version 18.0
Odoo apps queue_job — required by all Sadeem modules (install from Odoo Apps)
Python library paramiko — SSH connectivity (pip install paramiko)
Odoo Enterprise Not required — Community edition works

Infrastructure Services

These are the external services the modules integrate with. You don't need all of them — only what your deployment strategy requires.

Required for all setups

Service Purpose Notes
Root Server A Linux server accessible via SSH Used for command execution, monitoring, and hosting Docker or DBFilter deployments
Nginx Proxy Manager Reverse proxy and SSL termination Self-hosted; must be reachable from the Odoo master
Cloudflare DNS management A Cloudflare account with API token; the domain must be managed on Cloudflare

Required for Docker deployments

Service Purpose Notes
Portainer Docker stack management Self-hosted Portainer CE or BE; must be reachable from the Odoo master
Docker Engine Container runtime Installed on the root server that runs customer stacks

Required for DBFilter deployments

Service Purpose Notes
Shared Odoo instance The "slave" Odoo server A separate Odoo 18.0 instance configured with --db-filter; customers share this instance
PostgreSQL Server Database server Accessible from both the master Odoo and the slave Odoo

Optional

Service Purpose Notes
Sadeem Backup Manager Automated backups Separate Odoo instance with sadeem_saas_backup_manager installed
ntfy server Push notifications Self-hosted ntfy instance for mobile push alerts
GitHub / Git account Custom addon deployment Required if you want to deploy custom Odoo addons to subscriptions
S3-compatible storage Cloud backup storage Required if using sadeem_saas_backup_manager_s3 for off-site backups

Cloudflare API Token

The sadeem_cloudflare module uses the Cloudflare API to create DNS records automatically.

Required token permissions: - Zone → DNS → Edit - Zone → Zone → Read

How to create it: 1. Log in to dash.cloudflare.com 2. Go to My Profile → API Tokens → Create Token 3. Use the Edit zone DNS template 4. Scope it to the specific zone (domain) you'll use for SaaS subdomains 5. Copy the token — you'll enter it in Odoo under Infrastructure → Cloudflare Accounts


Nginx Proxy Manager API

The sadeem_nginx_proxy_manager module uses the NPM HTTP API.

  • NPM must have its API enabled (it is by default)
  • You need an NPM admin username and password
  • The NPM instance must be reachable from the Odoo master server on its API port (default 81)

Portainer API (Docker deployments only)

  • Portainer CE or BE, any recent version
  • An access token (not username/password) — generate it in Portainer under User Settings → Access Tokens
  • The Portainer instance must be reachable from the Odoo master

Network Requirements

Connection Required
Odoo master → Root server (SSH port 22) Yes
Odoo master → Nginx Proxy Manager (port 81) Yes
Odoo master → Portainer (port 9000 or 9443) Docker deployments
Odoo master → Backup server (HTTP/HTTPS) If using backups
Odoo master → Cloudflare API (HTTPS) Yes
Root server → Internet (Docker image pulls) Docker deployments

Access Roles

The Sadeem modules use a three-tier access control system. Assign roles before inviting team members.

Role What they can do
SaaS User Read-only access to subscriptions
SaaS Operator Create and manage subscriptions, run actions
SaaS Administrator Full access including infrastructure configuration