# 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.