Configuration Reference

Detailed reference for appsettings.json across all Iqra AI services.

View as Markdown

Each service in the Iqra AI cluster (Frontend, Proxy, Backend, Background) is configured via appsettings.json.

To ensure the distributed system functions correctly, specific settings must be synchronized across nodes.

1. Shared Configuration

The following settings are the "glue" of the cluster. They must be configured identically across the specific services listed to ensure the distributed system functions as a single unit.

Section : KeyDescriptionRequired ByShared Value?
MongoDatabase:ConnectionStringConnection string to the primary MongoDB cluster.All ServicesYES
RedisDatabase:EndpointHost:Port of the shared Redis instance (e.g., redis:6379).All ServicesYES
RedisDatabase:PasswordPassword for the shared Redis instance.All ServicesYES
Milvus:EndpointURL to the Vector Database (e.g., http://milvus:19530).Frontend, Backend, BackgroundYES
Milvus:DatabaseDatabase name (Default: default).Frontend, Backend, BackgroundYES
Milvus:Username(Optional) Milvus Auth User.Frontend, Backend, BackgroundYES
Milvus:Password(Optional) Milvus Auth Password.Frontend, Backend, BackgroundYES
Integrations:EncryptionKey32-Byte Key. Used to encrypt/decrypt third-party API Keys (e.g., Twilio/OpenAI) stored in MongoDB. If this mismatches, the Backend cannot use keys saved by the Frontend.Frontend, Proxy, BackendYES
S3Storage:DefaultStorageRegionIdThe Region ID (e.g., US-EAST) where global assets like Business Logos are stored.Frontend, BackgroundYES

Encryption Warning

Do not lose the Integrations:EncryptionKey. If you change this key after adding integrations, all existing connections (OpenAI, Twilio) will break because the system can no longer decrypt the stored credentials.


2. Hardware

Defining how the application interacts with the physical server.

Section : KeyDescriptionRequired ByShared Value?
Hardware:NetworkInterfaceNameThe exact name of the network adapter on the host (e.g., eth0 or Realtek...). Used to generate unique Snowflake IDs.All Services❌ No (Per Machine)
Hardware:MaxNetworkDownloadMbpsBandwidth for download.Backend❌ No (Per Machine)
Hardware:MaxNetworkUploadMbpsBandwidth for upload.Backend❌ No (Per Machine)

3. Application Specific Settings

Frontend App

Controls the User Interface, Authentication, and Document Processing.

BlockKeyDescription
-URLThe public facing URL of the dashboard (no trailing slash).
DoclingEndPointURL of the Docling parsing service (e.g., http://docling:8000).
MailSMTPHost, Port, Username, PasswordSMTP settings for sending password reset emails and invites.
ForwardedHeadersKnownProxiesList of IP addresses (e.g., Load Balancer/Cloudflare) to trust X-Forwarded-For headers from.
UserApiKeysApiKeyEncryptionKeyKey used to encrypt user-generated API tokens.
UserApiKeysPayloadEncryptionKeyKey used to sign JWT payloads for user sessions.
UserEmailHashPepperSecret string added to emails before hashing for privacy.

Proxy App

Controls the Telephony Gateway and Queue Dispatching.

BlockKeyDescription
ProxyIdUnique UUID. Must match the Server ID registered in Admin Dashboard.
ProxyRegionIdThe geographic region code (e.g., OM-MCT) this Proxy serves.
ProxyApiKeyA secret token used to authenticate internal API calls services. Must match the server api key registered in Admin Dashboard.
Proxy:OutboundProcessingPollingIntervalSecondsFrequency (in seconds) to check MongoDB for new queued calls.
Proxy:OutboundProcessingDbFetchBatchSizeNumber of queue items to fetch from DB in one go.
Proxy:OutboundProcessingProcessingBatchSizeNumber of items to process/dial in parallel.

Backend App

Controls the Real-time Audio processing and AI Orchestration.

BlockKeyDescription
ServerIdUnique UUID. Must match the Server ID registered in Admin Dashboard.
ServerRegionIdThe geographic region code (e.g., OM-MCT) this Backend serves.
ServerApiKeyA secret token used to authenticate internal API calls services. Must match the server api key registered in Admin Dashboard.
ServerExpectedMaxConcurrentCallsHard Limit. The maximum number of active calls this node will accept before rejecting new connections.
ServerWebhookTokenSecretSecret used to verify signatures of internal webhooks.
LocalRedisDatabaseEndpointConnection to a local (localhost) Redis on the Backend node.
LocalRedisDatabasePasswordPassword for Redis on the Backend node.

Background Processor

Controls maintenance jobs and cleanup.

BlockKeyDescription
MilvusExpiryCheckIntervalSecondsHow often to scan for stale vector collections to free up memory.
MilvusCollectionStaleTimeoutMinutesHow long a vector collection remains in memory before being unloaded.
SecurityApiKeyA secret token used to authenticate internal API calls services. Must match the server api key registered in Admin Dashboard.

On this page