Környezeti változók
Az alapvető környezeti változók a api/constants.py-ben vannak központosítva. A leírásban a Kötelező megjelölésű változókat kifejezetten be kell állítani – az alkalmazás vagy nem indul el, vagy nem működik megfelelően ezek nélkül.
Telepítési módok
Az IntraCord két telepítési módot támogat, a DEPLOYMENT_MODE segítségével beállítva:
- OSS: Az alapértelmezett mód. A Docker Compose segítségével önkiszolgáló telepítésekhez tervezték – az IntraCord futtatásának leggyorsabb módja. Helyi JWT hitelesítést és MinIO-t használ a tároláshoz.
- SaaS: A Dockeren kívüli testreszabott telepítésekhez készült. A hitelesítést és az API-kulcskezelést az IntraCord Managed Platform Services (MPS) kezeli, ami nagyobb rugalmasságot tesz lehetővé a platform üzemeltetése és integrálása terén.
Az egyes módokhoz tartozó szükséges változókat az alábbi leírások tartalmazzák.
Alkalmazás
| Változó | Alapértelmezett | Leírás |
|---|---|---|
ENVIRONMENT | local | Futási környezet. Befolyásolja a naplózást és a viselkedést. A local, production, test egyike |
DEPLOYMENT_MODE | oss | Telepítési mód. Használja a oss-t saját üzemeltetésű |
AUTH_PROVIDER | local | Hitelesítés-szolgáltató. A local (alapértelmezett) a beépített e-mail-/jelszófolyamot használja. Állítsa a stack értékre, hogy a Stack Auth-ra delegáljon közösségi bejelentkezést – lásd: Authentication a teljes beállításért |
Adatbázis
| Változó | Alapértelmezett | Leírás |
|---|---|---|
DATABASE_URL | N/A | Kötelező. PostgreSQL connection string. például postgresql+asyncpg://user:pass@host:5432/dbname |
REDIS_URL | N/A | Kötelező. Redis connection string. például redis://localhost:6379 |
Hitelesítés (OSS)
| Változó | Alapértelmezett | Leírás |
|---|---|---|
OSS_JWT_SECRET | N/A | Szükséges az OSS-telepítésekhez. A JWT tokenek aláírására használt titkos. Erős véletlenszerű értékre kell állítani a termelésben |
OSS_JWT_EXPIRY_HOURS | 720 | JWT token élettartama órákban (alapértelmezett: 30 nap) |
ENABLE_SIGNUP | true | Állítsa be a false értékre a nyilvános regisztráció letiltásához a meghívásos telepítéseknél – A POST /api/v1/auth/signup 403-at ad vissza, és a bejelentkezési oldal elrejti a Regisztráció hivatkozást |
Hitelesítés (Stack Auth)
Állítsa be ezeket, amikor a AUTH_PROVIDER=stack átadja a bejelentkezést a [Stack Auth]-nak (https://stack-auth.com) a közösségi bejelentkezéshez. A projekt azonosítója és a közzétehető ügyfélkulcs nyilvános, és futás közben a böngésző számára a /api/v1/health-n keresztül jeleníthető meg; a titkos szerverkulcs szerveroldali marad. A teljes ismertetőért lásd: Authentication.
| Változó | Alapértelmezett | Leírás |
|---|---|---|
STACK_AUTH_PROJECT_ID | null | Kötelező a stack esetén. Stack projektazonosító (nyilvános) |
STACK_PUBLISHABLE_CLIENT_KEY | null | Kötelező a stack esetén. Stack publishable client key (nyilvános) |
STACK_SECRET_SERVER_KEY | null | Kötelező a stack esetén. Stack secret server key – csak szerveroldali, a ui szolgáltatásban is beállítva. Tartsd titokban |
STACK_AUTH_API_URL | null | Kötelező a stack esetén. Stack REST API alap URL (pl. https://api.stack-auth.com) |
URL-ek
| Változó | Alapértelmezett | Leírás |
|---|---|---|
PUBLIC_BASE_URL | null | Kanonikus nyilvános eredet a telepítéshez (séma + gazdagép, pl. https://203-0-113-10.sslip.io). Szabványos egygépes telepítés esetén ez az egyetlen beállított endpointérték – a BACKEND_API_ENDPOINT és a MINIO_PUBLIC_ENDPOINT ebből származik |
PUBLIC_HOST | null | Nyilvános gazdagép séma nélkül (pl. 203-0-113-10.sslip.io); TURN_HOST abból származik |
BACKEND_API_ENDPOINT | PUBLIC_BASE_URL, különben http://localhost:8000 | Nyilvános URL, ahonnan a backend webhookot / visszahívást / beágyazási hivatkozásokat készít. Kifejezetten csak a PUBLIC_BASE_URL |
UI_APP_URL | http://localhost:3010 | A frontend alkalmazás URL-je |
MPS_API_URL | https://services.IntraCord.com | IntraCord által kezelt platformszolgáltatások URL-je |
IntraCord_MPS_SECRET_KEY | null | Kötelező nem OSS-alapú telepítésekhez. Titkos kulcs az MPS |
CORS_ALLOWED_ORIGINS | null | Kötelező a nem OSS-alapú központi telepítésekhez. A Credentials adatokkal ellátott, több forrásból származó kérelmeket engedélyező források vesszővel elválasztott listája (pl. https://app.example.com,https://admin.example.com). Figyelmen kívül hagyva az OSS módban, amely Credentials nélkül megengedő azonos eredetű házirendet szolgál |
Tárolás
Az IntraCord alapértelmezés szerint a MinIO-t használja, amely a saját üzemeltetésű központi telepítéshez tartozik, és nem igényel külső beállítást. Állítsa be a ENABLE_AWS_S3=true-t az AWS S3-ra való váltáshoz – általában felhőben vagy felügyelt telepítésekhez használják, ahol az S3 már az infrastruktúra része.
MinIO (OSS alapértelmezés)
| Változó | Alapértelmezett | Leírás |
|---|---|---|
MINIO_ENDPOINT | localhost:9000 | MinIO szerver gazdagép és port |
MINIO_PUBLIC_ENDPOINT | PUBLIC_BASE_URL, különben http://localhost:9000 | Nyilvánosan elérhető MinIO URL a letöltési linkekhez. A PUBLIC_BASE_URL-ből származik; kifejezetten csak egy különálló objektum-tároló eredethez van beállítva |
MINIO_ACCESS_KEY | N/A | Szükséges az OSS-telepítésekhez. MinIO hozzáférési kulcs. Biztonságos értékre kell beállítani a termelésben |
MINIO_SECRET_KEY | N/A | Szükséges az OSS-telepítésekhez. MinIO titkos kulcs. Biztonságos értékre kell beállítani a termelésben |
MINIO_BUCKET | voice-audio | Hangfájlok csoportjának neve |
MINIO_SECURE | false | HTTPS használata MinIO-kapcsolatokhoz |
AWS S3 (alternatív)
| Változó | Alapértelmezett | Leírás |
|---|---|---|
ENABLE_AWS_S3 | false | Állítsa be a true értékre az AWS S3 használatához a MinIO helyett |
S3_BUCKET | null | S3 vödör neve |
S3_REGION | us-east-1 | AWS régió |
S3_ENDPOINT_URL | null | Egyéni S3 endpoint S3-kompatibilis szerverekhez (pl. https://s3.example.com). Hagyja beállítatlanul az AWS-hez. |
S3_SIGNATURE_VERSION | null | Aláírási verzió. Az Unset a botocore alapértelmezett értékét használja; állítsa be a s3v4-t a SigV4-et igénylő szerverekhez. |
S3_ADDRESSING_STYLE | null | auto (alapértelmezett), path vagy virtual. Számos S3-kompatibilis szerver és TLS-beállítás igényel path-t. |
A Credentials a szabványos AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY környezeti változókból származnak.
S3-kompatibilis szerverek (MinIO, rustfs, Ceph, ...)
Az S3 háttérrendszer bármely S3-kompatibilis szervert megcélozhat, nem csak az AWS-t. Előnyben részesítse a MinIO-háttérprogramot, ha előre megjelölt URL-ekre van szüksége egy privát gyűjtőtárhoz: a MinIO-háttér egyszerű aláíratlan objektum-URL-eket ad vissza, és arra támaszkodik, hogy a vödör névtelenül nyilvánosan olvasható, míg az S3 háttérrendszer valódi előre aláírt URL-eket ad ki, így a tároló privát maradhat.
Használatához állítsa be a ENABLE_AWS_S3=true beállítást, és irányítsa a szerverére a fenti S3_* felülírásokkal. Például a rustfs ellen:
ENABLE_AWS_S3=true
S3_BUCKET=voice-audio
S3_REGION=us-east-1
S3_ENDPOINT_URL=https://s3.example.com
S3_SIGNATURE_VERSION=s3v4 # rustfs rejects SigV2 with SignatureDoesNotMatch
S3_ADDRESSING_STYLE=path # rustfs and most non-AWS TLS certs require path-style
AWS_ACCESS_KEY_ID=...
AWS_SECRET_ACCESS_KEY=...
WebRTC
| Változó | Alapértelmezett | Leírás |
|---|---|---|
ENABLE_COTURN | false | Ez a telepítés futtat-e TURN-kiszolgálót. Jelentve a böngészőknek turn_enabled néven a /api/v1/health-n és a beágyazott widget konfigurációjában; amikor a false ügyfelek kihagyják a TURN credential requestet, és STUN-on keresztül csatlakoznak, és a kiszolgáló 503-as értéket ad vissza a Credentials endpointjairól. Állítsa be a true értékre, ahol a coturn fut – a beállítási szkriptek és a Helm diagram elvégzi ezt Ön helyett |
TURN_HOST | PUBLIC_HOST, különben localhost | TURN szerver gazdagépneve a WebRTC NAT bejáráshoz. A PUBLIC_HOST-ből származik; csak akkor van beállítva kifejezetten, ha a TURN külön gazdagépen fut |
TURN_PORT | 3478 | TURN szerver port |
TURN_TLS_PORT | 5349 | TURN szerver TLS port |
TURN_SECRET | null | Szükséges a WebRTC-hez. Megosztott titok a TURN Credentials generálásához |
TURN_CREDENTIAL_TTL | 86400 | TURN Credentials érvényessége másodpercben (alapértelmezett: 24 óra) |
FORCE_TURN_RELAY | false | Diagnosztikai zászló. Amikor a true, az ICE-t a csak továbbításra alkalmas jelöltekre korlátozza mind a szerveren (SDP-szűrő), mind a böngészőn (iceTransportPolicy: 'relay'). Használja a TURN endpointok közötti kapcsolatának ellenőrzésére – a hívások hibátlanul meghiúsulnak, ha a TURN rosszul van konfigurálva, ahelyett, hogy csendben visszakerülne egy közvetlen útvonalra. |
Tracing (Langfuse)
| Változó | Alapértelmezett | Leírás |
|---|---|---|
LANGFUSE_HOST | null | Langfuse szerver URL |
LANGFUSE_PUBLIC_KEY | null | Langfuse nyilvános kulcs |
LANGFUSE_SECRET_KEY | null | Langfuse titkos kulcs |
A tracing automatikusan aktiválódik, amint rendelkezésre állnak a Credentials – vagy ezeken a környezeti változókon keresztül (minden szervezetre vonatkozik), vagy szervezetenként a felhasználói felületen a Platformbeállítások alatt. Ha egyik sem van beállítva, a fesztávok hangtalanul esnek. A beállítási utasításokért lásd a Tracing útmutatót.
Telefonálás
A szolgáltatók visszahívják a média WebSocket-et a /api/v1/telephony/ws/{workflow_id}/{organization_id}/{workflow_run_id} számon. Ezek az azonosítók a hívó által látható URL-ben utaznak, így önmagukban is sejthető. A titok beállítása arra készteti az IntraCord-t, hogy aláírja az URL-t egy HMAC-vel, és ellenőrizze az aláírást, amikor a socket megnyílik.
Az aláírás záró útvonalszegmensként – /api/v1/telephony/ws/{workflow_id}/{organization_id}/{workflow_run_id}/{token} – halad, mivel a szolgáltatók nem továbbítják megbízhatóan a lekérdezési Stringokat. A Twilio dokumentálja, hogy a <Stream> URL-je "nem támogatja a lekérdezési String-paramétereket", és azonnal eldobja őket. Az Asterisk ARI a kivétel: csatlakozik a /api/v1/telephony/ws/ari-hez, és a token-t lekérdezési paraméterként adja át a többi útválasztási értéke mellett, ami azért működik, mert az Asterisk maga építi fel ezt az URL-t.
| Változó | Alapértelmezett | Leírás |
|---|---|---|
TELEPHONY_WS_TOKEN_SECRET | null | A média WebSocket URL aláírására használt titok. Az Unset az URL-eket változatlanul hagyja, az ellenőrzést pedig letiltja |
TELEPHONY_WS_TOKEN_ENFORCE | false | Olyan kapcsolatok elutasítása, amelyeknek tokenje hiányzik vagy érvénytelen (WebSocket bezárása 4401) |
Nyújtsa ki két lépésben, hogy ne szakadjon meg a hívás:
- Állítsa be a
TELEPHONY_WS_TOKEN_SECRETértéket minden folyamatra, amely hívást kezdeményez vagy fogad – aapiszolgáltatásban, és ha az Asterisk fut, akkor aari-manager. Ugyanolyan értékkel kell rendelkezniük: az egyik verik a tokent, a másik ellenőrzi. A hívások mindkét irányban folyamatosan kapcsolódnak; minden ellenőrizhetetlenUNVERIFIED media socketnéven kerül naplózásra. - Ha ezek a figyelmeztetések megszűnnek, állítsa be a
TELEPHONY_WS_TOKEN_ENFORCE=trueelemet, hogy elkezdje elutasítani őket.
A TELEPHONY_WS_TOKEN_ENFORCE titkosítás nélküli beállítása semmit sem eredményez – az ellenőrzést a rendszer teljesen kihagyja, nem pedig minden kapcsolatot elutasít.
Monitoring
| Változó | Alapértelmezett | Leírás |
|---|---|---|
SENTRY_DSN | null | Sentry DSN a hibakövetéshez |
ENABLE_TELEMETRY | false | Névtelen telemetriai adatgyűjtés engedélyezése |
Naplózás
| Változó | Alapértelmezett | Leírás |
|---|---|---|
LOG_LEVEL | DEBUG | Naplószint: DEBUG, INFO, WARNING, ERROR |
LOG_FILE_PATH | null | Írjon naplókat erre a fájlútvonalra (az stdout mellett) |
LOG_ROTATION_SIZE | 100 MB | Forgassa el a naplófájlt, amikor eléri ezt a méretet |
LOG_RETENTION | 7 days | Mennyi ideig kell megőrizni az elforgatott naplófájlokat |
LOG_COMPRESSION | gz | Tömörítési formátum elforgatott naplókhoz |
SERIALIZE_LOG_OUTPUT | false | Kimeneti naplók JSON-ként (hasznos napló-összesítéshez) |
Kampányok
Szabályozza a Kampányok, az IntraCord tömeges kimenő hívási funkciójának egyidejűségét.
| Változó | Alapértelmezett | Leírás |
|---|---|---|
DEFAULT_ORG_CONCURRENCY_LIMIT | 10 | Maximális egyidejű aktív hívások szervezetenként (az 1 alatti értékek 1-hez vannak zárva) |
További testreszabás
Az itt dokumentált változók lefedik a szabványos konfigurációs felületet. A speciális testreszabáshoz – például további szolgáltatások integrálásához vagy a belső viselkedés hangolásához – tekintse meg a megfelelő modult a api/constants.py mellett, hogy megértse az egyes változók felhasználását.