Ugrás a fő tartalomhoz

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értelmezettLeírás
ENVIRONMENTlocalFutási környezet. Befolyásolja a naplózást és a viselkedést. A local, production, test egyike
DEPLOYMENT_MODEossTelepítési mód. Használja a oss-t saját üzemeltetésű
AUTH_PROVIDERlocalHitelesí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értelmezettLeírás
DATABASE_URLN/AKötelező. PostgreSQL connection string. például postgresql+asyncpg://user:pass@host:5432/dbname
REDIS_URLN/AKötelező. Redis connection string. például redis://localhost:6379

Hitelesítés (OSS)

VáltozóAlapértelmezettLeírás
OSS_JWT_SECRETN/ASzü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_HOURS720JWT token élettartama órákban (alapértelmezett: 30 nap)
ENABLE_SIGNUPtrueÁ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értelmezettLeírás
STACK_AUTH_PROJECT_IDnullKötelező a stack esetén. Stack projektazonosító (nyilvános)
STACK_PUBLISHABLE_CLIENT_KEYnullKötelező a stack esetén. Stack publishable client key (nyilvános)
STACK_SECRET_SERVER_KEYnullKö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_URLnullKötelező a stack esetén. Stack REST API alap URL (pl. https://api.stack-auth.com)

URL-ek

VáltozóAlapértelmezettLeírás
PUBLIC_BASE_URLnullKanonikus 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_HOSTnullNyilvános gazdagép séma nélkül (pl. 203-0-113-10.sslip.io); TURN_HOST abból származik
BACKEND_API_ENDPOINTPUBLIC_BASE_URL, különben http://localhost:8000Nyilvá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_URLhttp://localhost:3010A frontend alkalmazás URL-je
MPS_API_URLhttps://services.IntraCord.comIntraCord által kezelt platformszolgáltatások URL-je
IntraCord_MPS_SECRET_KEYnullKötelező nem OSS-alapú telepítésekhez. Titkos kulcs az MPS
CORS_ALLOWED_ORIGINSnullKö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értelmezettLeírás
MINIO_ENDPOINTlocalhost:9000MinIO szerver gazdagép és port
MINIO_PUBLIC_ENDPOINTPUBLIC_BASE_URL, különben http://localhost:9000Nyilvá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_KEYN/ASzü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_KEYN/ASzükséges az OSS-telepítésekhez. MinIO titkos kulcs. Biztonságos értékre kell beállítani a termelésben
MINIO_BUCKETvoice-audioHangfájlok csoportjának neve
MINIO_SECUREfalseHTTPS használata MinIO-kapcsolatokhoz

AWS S3 (alternatív)

VáltozóAlapértelmezettLeírás
ENABLE_AWS_S3falseÁllítsa be a true értékre az AWS S3 használatához a MinIO helyett
S3_BUCKETnullS3 vödör neve
S3_REGIONus-east-1AWS régió
S3_ENDPOINT_URLnullEgyéni S3 endpoint S3-kompatibilis szerverekhez (pl. https://s3.example.com). Hagyja beállítatlanul az AWS-hez.
S3_SIGNATURE_VERSIONnullAláí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_STYLEnullauto (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értelmezettLeírás
ENABLE_COTURNfalseEz 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_HOSTPUBLIC_HOST, különben localhostTURN 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_PORT3478TURN szerver port
TURN_TLS_PORT5349TURN szerver TLS port
TURN_SECRETnullSzükséges a WebRTC-hez. Megosztott titok a TURN Credentials generálásához
TURN_CREDENTIAL_TTL86400TURN Credentials érvényessége másodpercben (alapértelmezett: 24 óra)
FORCE_TURN_RELAYfalseDiagnosztikai 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értelmezettLeírás
LANGFUSE_HOSTnullLangfuse szerver URL
LANGFUSE_PUBLIC_KEYnullLangfuse nyilvános kulcs
LANGFUSE_SECRET_KEYnullLangfuse 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értelmezettLeírás
TELEPHONY_WS_TOKEN_SECRETnullA 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_ENFORCEfalseOlyan 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:

  1. Állítsa be a TELEPHONY_WS_TOKEN_SECRET értéket minden folyamatra, amely hívást kezdeményez vagy fogad – a api szolgáltatásban, és ha az Asterisk fut, akkor a ari-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őrizhetetlen UNVERIFIED media socket néven kerül naplózásra.
  2. Ha ezek a figyelmeztetések megszűnnek, állítsa be a TELEPHONY_WS_TOKEN_ENFORCE=true elemet, 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értelmezettLeírás
SENTRY_DSNnullSentry DSN a hibakövetéshez
ENABLE_TELEMETRYfalseNévtelen telemetriai adatgyűjtés engedélyezése

Naplózás

VáltozóAlapértelmezettLeírás
LOG_LEVELDEBUGNaplószint: DEBUG, INFO, WARNING, ERROR
LOG_FILE_PATHnullÍrjon naplókat erre a fájlútvonalra (az stdout mellett)
LOG_ROTATION_SIZE100 MBForgassa el a naplófájlt, amikor eléri ezt a méretet
LOG_RETENTION7 daysMennyi ideig kell megőrizni az elforgatott naplófájlokat
LOG_COMPRESSIONgzTömörítési formátum elforgatott naplókhoz
SERIALIZE_LOG_OUTPUTfalseKimeneti 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értelmezettLeírás
DEFAULT_ORG_CONCURRENCY_LIMIT10Maximá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.