Skip to content

Package Content

Module Architecture

flowchart TD
    OC["āš™ļø Odoo Core\n(base, mail, web, sale,\naccount, portal, website)"]

    BASE["sadeem_saas_base\nšŸ—ļø SAAS Base\nServers, backups, git accounts,\nnotifications (ntfy), SSH terminal,\nwebhooks, SaaS logs"]
    CF["sadeem_cloudflare\n🌐 Cloudflare Connector\nDNS record management\nvia Cloudflare API"]
    NPM["sadeem_nginx_proxy_manager\nšŸ”€ Nginx Proxy Manager\nReverse proxy & SSL\nvia NPM API"]
    PORT["sadeem_portainer\n🐳 Portainer Connector\nDocker environment management\nvia Portainer API"]

    SUB["sadeem_subscription\nšŸ“‹ SAAS Subscription Base\nCore SaaS logic: subscriptions,\nstages, billing, domains,\nportal, module management,\nbackups, slave communication"]

    DOCKER["sadeem_saas_docker\n🐳 Docker SAAS\nDocker deployment strategy:\nstack provisioning via Portainer,\ncontainer logs, resource monitoring"]
    DBFILT["sadeem_saas_dbfilter\nšŸ—„ļø DB Filter SAAS\nShared-instance deployment:\nDBFilter server groups,\ndomain routing, DB provisioning"]

    SYNCDB["sadeem_saas_dbfilter_sync_db\nšŸ”„ DBFilter Sync Databases\nSync existing DBFilter server\ndatabases into subscriptions"]

    TRIAL["sadeem_subscription_trial\nšŸ†“ Subscription Trial\nPublic trial request form,\ncustomizable trial packages"]
    WEB["sadeem_subscription_website\nšŸ›’ Website Plans\nPublic plan marketplace,\nsubscription purchase via website"]

    TRIAL_DOCK["sadeem_subscription_trial_docker\nšŸ³šŸ†“ Trial + Docker\nDocker fields for trial packages"]
    TRIAL_DB["sadeem_subscription_trial_dbfilter\nšŸ—„ļøšŸ†“ Trial + DBFilter\nDBFilter fields for trial packages"]
    WEB_DOCK["sadeem_subscription_website_docker\nšŸ³šŸ›’ Website Plans + Docker\nDocker fields for website plans"]
    WEB_DB["sadeem_subscription_website_dbfilter\nšŸ—„ļøšŸ›’ Website Plans + DBFilter\nDBFilter fields for website plans"]

    OC --> BASE
    OC --> SUB
    BASE --> CF
    BASE --> NPM
    NPM --> PORT
    CF --> PORT
    BASE --> SUB
    NPM --> SUB
    CF --> SUB
    CF --> DOCKER
    SUB --> DOCKER
    PORT --> DOCKER
    CF --> DBFILT
    SUB --> DBFILT
    DBFILT --> SYNCDB
    SUB --> TRIAL
    SUB --> WEB
    TRIAL --> TRIAL_DOCK
    DOCKER --> TRIAL_DOCK
    TRIAL --> TRIAL_DB
    DBFILT --> TRIAL_DB
    WEB --> WEB_DOCK
    DOCKER --> WEB_DOCK
    WEB --> WEB_DB
    DBFILT --> WEB_DB

    classDef infra fill:#1e3a5f,color:#fff,stroke:#4a9eff
    classDef core fill:#2d5a27,color:#fff,stroke:#5cb85c
    classDef strategy fill:#5a3e00,color:#fff,stroke:#f0a500
    classDef feature fill:#3d1a5e,color:#fff,stroke:#9b59b6
    classDef variant fill:#1a4040,color:#fff,stroke:#1abc9c

    class BASE,CF,NPM,PORT infra
    class SUB core
    class DOCKER,DBFILT strategy
    class SYNCDB,TRIAL,WEB feature
    class TRIAL_DOCK,TRIAL_DB,WEB_DOCK,WEB_DB variant

SAAS Package
ā”œā”€ sadeem_saas_base
ā”œā”€ sadeem_cloudflare
ā”œā”€ sadeem_nginx_proxy_manager
ā”œā”€ sadeem_portainer
ā”œā”€ sadeem_subscription
ā”œā”€ sadeem_saas_docker
ā”œā”€ sadeem_saas_dbfilter
ā”œā”€ sadeem_saas_dbfilter_sync_db
ā”œā”€ sadeem_subscription_trial
ā”œā”€ sadeem_subscription_trial_dbfilter
ā”œā”€ sadeem_subscription_trial_docker
ā”œā”€ sadeem_subscription_website
ā”œā”€ sadeem_subscription_website_dbfilter
└─ sadeem_subscription_website_docker

SAAS Package Slave
└─ sadeem_saas_slave

SAAS Package Backup
└─ sadeem_saas_backup_manager

SAAS Base (sadeem_saas_base)

Foundation module required by all other SAAS modules. Provides shared infrastructure, security groups, and core integrations.

Feature Description
Root Servers SSH connectivity, command execution, real-time monitoring (CPU/RAM/Disk/Network), web terminal, VS Code server
Git Integration GitHub account management, repository tracking, webhook registration, commit logging, syntax-validated code deployment
PostgreSQL Servers Remote database server connection configuration
Backup Servers Remote backup API integration with S3/cloud account syncing
Notification Servers Push notifications via self-hosted ntfy and Firebase FCM, per-subscription token management
Webhooks Inbound webhook endpoints that trigger actions on Odoo records
Audit Logging Full log of all SSH commands and server actions

Cloudflare Connector (sadeem_cloudflare)

Integrates Odoo with the Cloudflare API for DNS management.

Feature Description
Accounts Store and validate API credentials per Cloudflare account
DNS Records Create, update, delete, and check A and CNAME records remotely
Proxied Mode Toggle Cloudflare proxying and configure TTL per record
Status Checks Compare local record config against live Cloudflare state
Duplicate Detection Auto-links to existing remote records on conflict

Nginx Proxy Manager Connector (sadeem_nginx_proxy_manager)

Integrates Odoo with the Nginx Proxy Manager API for reverse proxy and SSL management.

Feature Description
Servers Connect to NPM instances with JWT authentication and automatic token refresh
Proxy Hosts Create, enable, disable, and delete proxy hosts remotely
SSL Certificates Auto-provision Let's Encrypt certs; reuses latest valid cert if found
Status Checks Verify live host state and compare against local config

Portainer Connector (sadeem_portainer)

Integrates Odoo with the Portainer API for Docker infrastructure orchestration.

Feature Description
Portainer Servers Connect via API key; install Portainer on root servers via SSH with auto admin setup
Environments Track Docker hosts with real-time capacity; carry Nginx/Cloudflare/domain defaults for subscriptions
Stack Management Create, update, start, stop, delete Docker stacks; check health
Container Control Restart, start, stop, and exec commands in containers
Image Config Define Docker images with version tags and environment assignment strategies
Environment Selection Pick optimal Docker host by sequence or lowest usage

Subscription (sadeem_subscription)

Core SaaS subscription lifecycle management module. All deployment strategy modules extend this.

Feature Description
Subscriptions Full lifecycle: Draft → Building (DNS + Nginx + DB) → Running → Stopped / Cancelled
Stages Multi-stage environments per subscription (dev, test, production)
Packages & Modules Reusable Odoo module collections assignable to subscriptions
Backup Management Create, download, restore backups via remote backup server
Collaborators Team access management with portal invite workflow
Update Requests Resource upgrade requests (users, storage, stages) with approve/decline
Model Limits Per-model record limits synced to slave instances
Database Templates Pre-built DB snapshots for fast subscription setup
Dashboard Real-time KPI cards, charts, alerts, and activity feeds
Portal Customer self-service for backups, stages, domains, git, and more
SQL Console Run SQL queries directly on slave databases

Docker SAAS (sadeem_saas_docker)

Docker-based subscription deployment strategy via Portainer.

Feature Description
Docker Subscriptions Container lifecycle, Odoo configuration, worker scaling
Docker Stages Independent stage containers with separate configuration
Code Server Browser-based VS Code containers for remote development
Dashboard Extension Environments section added to the subscription dashboard

DB Filter SAAS (sadeem_saas_dbfilter)

Shared-instance deployment strategy using Odoo database filtering.

Feature Description
DB Filter Servers Multi-tenant Odoo server configuration
Server Groups Load balancing with sequence or capacity-based selection
Invoice Integration Automatic subscription creation from confirmed invoices

DBFilter Sync Databases (sadeem_saas_dbfilter_sync_db)

Add-on for sadeem_saas_dbfilter. Syncs existing databases from a DBFilter server into Odoo subscriptions.

Feature Description
Sync Wizard Select existing databases on a DBFilter server and import them as subscriptions
Server Integration Adds sync action directly on the DBFilter server form

Subscription Trial (sadeem_subscription_trial)

Public trial subscription request system via website form.

Feature Description
Trial Packages Configurable trial duration, resource limits, and auto-subscription creation
Trial Requests Customer submissions via public form with automatic subscription provisioning

Subscription Trial - DB Filter (sadeem_subscription_trial_dbfilter)

Extends trial packages with DB Filter server group configuration for DBFilter-based trial provisioning.


Subscription Trial - Docker (sadeem_subscription_trial_docker)

Extends trial packages with Docker image configuration for Docker-based trial provisioning.


Subscription Website Plans (sadeem_subscription_website)

Public-facing subscription purchase system with website checkout and payment.

Feature Description
Plans Configurable offerings with packages, add-ons, and multi-period pricing
Plan Orders Customer orders integrated with sale orders and Odoo payment
Website Flow Browse plans → configure → pick subdomain → checkout → pay

Website Plans - DB Filter (sadeem_subscription_website_dbfilter)

Extends website plans with DB Filter server group configuration for DBFilter-based subscription creation.


Website Plans - Docker (sadeem_subscription_website_docker)

Extends website plans with Docker image and workers add-on for Docker-based subscription creation.


SAAS Package Slave (sadeem_saas_slave)

Installed on each client Odoo instance. Enables remote control from the master SAAS platform.

Feature Description
Remote Control User management, module install/uninstall, SQL execution
Backup Backup creation and restore operations on the client side
Bypass Login Direct admin login without password for support access
Info Endpoint Exposes resource usage, database info, and module list to master

SAAS Package Backup (sadeem_saas_backup_manager)

Standalone backup management server running on a separate Odoo instance.

Feature Description
Backup Operations Create, delete, and download database backups via REST API
Scheduled Actions Automated backup routines with configurable retention
Amazon S3 Cloud storage integration for off-site backup storage