Server Requirements & Preparation¶
Before deploying the Mdlwr application to a production environment, ensure your VPS or dedicated server meets the following specifications and dependencies.
Supported Operating Systems¶
The Mdlwr platform is officially tested and supported on the following Linux distributions:
- RHEL 8 / 9
- Rocky Linux 8 / 9
- Oracle Linux 8 / 9
- Ubuntu 22.04 LTS or newer
Required Host & Container Stack¶
Since the entire Mdlwr architecture is fully containerized via Docker Compose, you only need to install the core container engines on the host machine. All other services (Database, Redis, Proxy, and Workers) run automatically inside containers.
| Component | Type / Version | Notes |
|---|---|---|
| Docker Engine | Host / 28.x |
Core containerization platform |
| Docker Compose | Host / >= 2.20 |
Multi-container orchestration plugin |
| PostgreSQL | Container (db) / 14.x |
Database engine (managed via compose) |
| Redis | Container (redis) / 7-alpine |
In-memory cache & message broker |
| Nginx | Container (nginx) |
Reverse proxy & SSL termination |
Minimum Hardware Requirements (Production)¶
For stable production workloads (running all app services, workers, database, and proxy simultaneously), allocate at least the following hardware resources:
- CPU: Minimum 4 Cores
- RAM: Minimum 8 GB RAM
- Storage: Minimum 80 GB SSD
Hardware Sizing & Capacity Planning¶
Hardware requirements depend heavily on your integration volume, active data flows, and concurrency.
For full details on selecting server specs ranging from S (Small) up to XXL (Enterprise)—including Gunicorn worker tuning (-w), database memory allocation (shared_buffers), and Docker memory limits—please refer to the dedicated Server Sizing Guide.
Network & Firewall Ports¶
Ensure that your cloud security group, local firewall, or corporate proxy allows traffic through the required ports:
| Port | Protocol | Description |
|---|---|---|
| 80 | TCP | HTTP traffic (Redirects to HTTPS via Nginx) |
| 443 | TCP | Secure HTTPS traffic (Client & API Access) |
| 5432 | TCP | PostgreSQL Database port (exposed from container) |
| 6379 | TCP | Redis server port (exposed from container) |
| 5000 – 5002 | TCP | Internal application service ports |
⚠️ Important Note: Ports
5432and6379are exposed by the container for local administrative access, but should ideally be restricted via firewall to internal networks or localhost only for security compliance.