# Overview (Reference: https://docs.iqra.bot/developers/self-hosting)
Self-hosting Iqra AI gives you absolute control over data privacy, latency, and infrastructure costs.
Because we prioritize low-latency audio processing, we currently recommend a **Manual Binary Deployment** for the application layer, rather than Docker. This ensures the Backend App has direct access to CPU scheduling and UDP ports without NAT overhead.
Deployment Strategy [#deployment-strategy]
Iqra AI follows a **Hybrid Deployment Model**:
| Component | Recommended Host | Reason |
| :-------------------- | :------------------ | :----------------------------------------------------------------------------------------------------------------- |
| **Data Layer** | **Docker** | MongoDB, Redis, Milvus, and Docling are complex to install manually. We provide a `docker-compose` file for these. |
| **Application Layer** | **Bare Metal / VM** | Running the .NET binaries directly (Systemd/Windows Service) ensures maximum performance for real-time audio. |
The platform is built on **.NET**.
* **Linux:** Debian 12+ (Recommended for Production).
* **Windows:** Windows 10/11 or Server 2019+ (Fully supported).
* **macOS:** Supported but not tested for development or production.
Architecture Topology [#architecture-topology]
Before you deploy, decide on your scale.
1. Single Node (Quick Start) [#1-single-node-quick-start]
Everything runs on one machine.
* **1x Frontend** (Dashboard)
* **1x Background** (Jobs)
* **1x Proxy** (Telephony Gateway)
* **1x Backend** (Audio Processor)
* **All Databases** (Docker)
2. Multi-Region (Production Scale) [#2-multi-region-production-scale]
Iqra AI is distributed by design.
* **Central:** Frontend & Background (Single Instance).
* **Region A (e.g., US-East):** 1x Proxy + N x Backend Nodes.
* **Region B (e.g., EU-Central):** 1x Proxy + N x Backend Nodes.
The **Frontend** and **Background** are singletons (one per cluster). The **Proxy** and **Backend** are regional and can be scaled horizontally.
System Requirements [#system-requirements]
Hardware (Minimum) [#hardware-minimum]
* **CPU:** 4 Cores (AVX2 support recommended for Vector/Audio processing).
* **RAM:** 16GB (Milvus and Docling are memory-intensive).
* **Disk:** 50GB SSD (NVMe recommended).
Network [#network]
* **Public IP:** Essential for receiving Webhooks from Telephony providers (Twilio/Telnyx).
* **Ports:**
* `80/443` (HTTP/HTTPS) - Dashboard & API.
* `5060` (SIP) - If using SIP Trunking.
* `10000-20000` (UDP) - **Critical.** RTP Audio Media range for the Backend.
Software Dependencies [#software-dependencies]
You will need the following "Data Layer" services running. We recommend using our provided `docker-compose.yml` for these.
} title="MongoDB">
**v6.0+**. Primary storage for metadata, users, and logs.
} title="Redis">
**v7.0+**. Hot cache, pub/sub, and concurrency counters.
} title="Milvus">
**v2.3+**. Vector database for RAG Knowledge Base.
} title="RustFS / S3">
Object storage for audio files. We provide **RustFS**, a lightweight S3-compatible server.
} title="Docling">
**Document Parser.** An AI-powered service used to convert PDFs/Office docs into clean text for RAG.
The Roadmap [#the-roadmap]
Deploying Iqra AI involves four distinct stages.
} title="1. Infrastructure" href="/developers/self-hosting/dependencies">
Spinning up the databases and Docling using Docker.
} title="2. Configuration" href="/developers/self-hosting/configuration">
configuring `appsettings.json` for the Frontend, Backend, Proxy, and Background apps.
} title="3. Deployment" href="/developers/self-hosting/deployment">
Publishing the .NET binaries and running them as Services.
} title="4. Initialization" href="/developers/self-hosting/initialization">
First-time setup: Creating the Admin account and seeding the database.
} title="5. Lifecycle" href="/developers/self-hosting/lifecycle">
Handling updates, database migrations, seeding, and telemetry policies.