Ugrás a fő tartalomhoz

Docker

Az IntraCord AI két fő konfigurációban telepíthető a Docker segítségével. Válassza ki az igényeinek leginkább megfelelő lehetőséget:

  • 1. lehetőség: Helyi fejlesztéshez és saját gépen történő teszteléshez
  • 2. lehetőség: Távoli szerver telepítéséhez HTTPS-sel (IP-cím használatával). Ha egyéni tartománya is van, először telepítheti az IntraCord-vermet a kiszolgálóra a jelen dokumentum lépései szerint, majd folytathatja az Egyéni tartomány szakaszt.

1. lehetőség: Helyi Docker-telepítés

Tekintse meg az alábbi oktatóvideót az IntraCord AI helyi Docker segítségével történő beállításának lépésről lépésre történő bemutatásához.

Helyi fejlesztéshez és teszteléshez az IntraCord AI-t közvetlenül a gépén futtathatja a Docker segítségével egy kis indító szkripttel.

Gyors kezdés

Töltse le a kompozíciós fájlt és az indító szkriptet, majd erősítse meg az IntraCord AI indításához szükséges parancsot:

curl -o docker-compose.yaml https://raw.githubusercontent.com/IntraCord-hq/IntraCord/main/docker-compose.yaml && curl -o start_docker.sh https://raw.githubusercontent.com/IntraCord-hq/IntraCord/main/scripts/start_docker.sh && chmod +x start_docker.sh && ./start_docker.sh
Invoke-WebRequest -OutFile docker-compose.yaml https://raw.githubusercontent.com/IntraCord-hq/IntraCord/main/docker-compose.yaml; Invoke-WebRequest -OutFile start_docker.ps1 https://raw.githubusercontent.com/IntraCord-hq/IntraCord/main/scripts/start_docker.ps1; .\start_docker.ps1

Ez a beállítás:

  • Letölti a legújabb docker-compose.yaml fájlt
  • OSS_JWT_SECRET, REDIS_PASSWORD és MinIO Credentials adatokat hoz létre a .env fájlban, ha még nem léteznek
  • Létrehozza a POSTGRES_PASSWORD-t a vadonatúj .env fájlokhoz, és az indítás előtt szinkronizálja a megtartott helyi Postgres-köteteket ezzel az értékkel
  • Kérdések a Docker Compose futtatása előtt
  • Elindítja az összes szükséges szolgáltatást, beleértve a PostgreSQL-t, a Redist, a MinIO-t, az API-t és a felhasználói felületet
  • Automatikusan lekéri a legújabb képeket

Nyissa meg az Alkalmazást

Miután elindult (az első indítás 2-3 percig tart), nyissa meg:

http://localhost:3010

A WebRTC kapcsolat hibaelhárítása

A fenti Gyors útmutató a böngésző és az API-tároló közötti közvetlen peer-to-peer WebRTC-n alapul. A legtöbb egygépes beállításnál ez minden extra konfiguráció nélkül működik. Ha az alábbiak közül bármelyiket eléri, valószínűleg egy TURN szerverre lesz szüksége az elérési útban:

  • A hívás létrejön, de a hang egyik irányba sem folyik
  • A böngészőkonzol a iceConnectionState: failed üzenetet jelzi
  • Ön okostelefonja böngészőjéből vagy a LAN-on lévő másik eszközről tesztel a Dockert futtató laptopon
  • VPN, vállalati tűzfal vagy szigorú NAT található a böngésző és a Docker között

Ezekben az esetekben használja az alternatív helyi beállítási parancsfájlt, amely egy coturn TURN szervert konfigurál a stack többi része mellett:

curl -o setup_local.sh https://raw.githubusercontent.com/IntraCord-hq/IntraCord/main/scripts/setup_local.sh && chmod +x setup_local.sh && ./setup_local.sh
Invoke-WebRequest -OutFile setup_local.ps1 https://raw.githubusercontent.com/IntraCord-hq/IntraCord/main/scripts/setup_local.ps1; .\setup_local.ps1

A szkript a következőket fogja kérni:

  • A coturn engedélyezése (válasz y)
  • A gazdagép böngészőknek a TURN eléréséhez kell használniuk (nyomja meg az Entert a 127.0.0.1-hez; használja a LAN IP-címét, ha ugyanazon a hálózaton lévő másik eszközről tesztel)
  • Megosztott titok a TURN szerverhez (lenyomjon Entert egy véletlenszerű titkosítás létrehozásához)

Létrehoz egy docker-compose.yaml-t, egy .env fájlt JWT és TURN Credentials adatokkal, valamint azt a kis segédcsomagot, amelyet a IntraCord-init használ a coturn konfigurációjának megjelenítéséhez indításkor. Indítsa el a stacket a local-turn profillal, hogy a coturn megjelenjen a többi szolgáltatás mellett:

docker compose --profile local-turn --profile tunnel up --pull always

Az alkalmazás továbbra is elérhető a http://localhost:3010 címen.

2. lehetőség: Távoli szervertelepítés

Tekintse meg az alábbi oktatóvideót az IntraCord AI távoli kiszolgálón történő telepítésének lépésről lépésre történő bemutatásához.

Telepítse az IntraCord AI-t egy távoli kiszolgálón, hogy bárhonnan elérhető legyen. Ha a szervere nyilvános IP-címmel rendelkezik, a telepítés automatikusan ingyenes, megbízható HTTPS-tanúsítványt kap a sslip.io és a Let's Encrypt segítségével – nincs szükség domainnévre vagy DNS-konfigurációra, és nincs böngésző figyelmeztetés sem. Egy privát/lefoglalt IP-címen visszaesik egy önaláírt tanúsítványra. Az alkalmazást HTTPS-en keresztül kell kiszolgálnunk, mivel a modern böngészők csak a HTTPS-en keresztül kiszolgált webhelyeknél engedélyezik a mikrofonengedélyeket.

Előfeltételek

  • A Docker és a Docker Compose telepített kiszolgálója. Legalább 8 GB RAM-mal és 4 vCPU-val kell rendelkeznie.
  • Root (sudo) hozzáférés a kiszolgálón – a telepítő parancsfájlt rootként kell futtatni, ellenkező esetben korán ki kell lépnie.
  • A szerver nyilvános IP-címe. A szervert a VPC-ben lévő helyi IP-cím használatával is elérheti, amennyiben az elérhető a böngészőjéből.
  • A 80-as, 443-as, 3478-as, 5349-es TCP-portok, valamint a 3478-as, 5349-es és 49152:49200-as UDP-portok az internetről elérhetők (a 80-as és 443-as port a felhasználói felület eléréséhez és a többi port a WebRTC jelzéshez)

Gyors beállítás

Futtassa az automatikus beállítási szkriptet, amely mindent beállít Önnek:

curl -o setup_remote.sh https://raw.githubusercontent.com/IntraCord-hq/IntraCord/main/scripts/setup_remote.sh && chmod +x setup_remote.sh && sudo ./setup_remote.sh

A szkript a következőket fogja kérni:

  • A szerver nyilvános IP-címe
  • Jelszó a TURN szerverhez (opcionális, alapértelmezésként nyomja meg az Enter billentyűt)
  • Üzembe helyezési mód – nyomja meg az Enter billentyűt az előre felépített (hivatalos képek lehívásához, az ajánlott alapértelmezett beállításhoz), vagy válassza a build lehetőséget a képek forrásból való fordításához. Használja a build-ot, ha egy villát karbantart, vagy helyi testreszabásokat kíván telepíteni – lásd alább a Building from source részt.
  • A FastAPI-munkások száma (az uvicorn feldolgozása az nginx terheléskiegyenlítését végzi) – nyomja meg az Enter billentyűt az alapértelmezett 4 értékhez, vagy válasszon egy értéket, amely megfelel a szerver CPU-számának. Tekintse meg a Scaling című részt a méretre vonatkozó útmutatásért, és hogyan módosíthatja ezt a futó stackben.

Ez automatikusan:

  • Szerezze be a forrást – csak a docker-compose.yaml (előre felépített mód), vagy klónozza a teljes repót (építési mód)
  • Töltse le az ellenőrzött távoli telepítési segédcsomagot
  • Szerezzen be egy ingyenes, megbízható Let's Encrypt tanúsítványt az sslip.io-n keresztül, és konfigurálja az automatikus megújítást (nyilvános IP), vagy hozzon létre egy önaláírt tanúsítványt (privát IP / root nélkül)
  • Nyilvános IP-cím esetén indítsa el a vermet, és nyomtassa ki a használatra kész https://…sslip.io URL-címet
  • Hozzon létre egy környezetfájlt a TURN szerver konfigurációjával
  • Érvényesítse a futásidejű konfigurációt, amelyet a IntraCord-init a .env fájlból fog lerenderelni
  • Írjon egy docker-compose.override.yaml-t build direktívákkal (csak összeállítási módban)

Indítsa el az Alkalmazást

A telepítési szkript befejezése után indítsa el az IntraCord-t. Nyilvános IP-telepítés esetén a megbízható tanúsítvány folyamata már elindította a stacket, és kinyomtatta a https://…sslip.io URL-címét – ugorhat az Access Your Application részhez. Önaláírt telepítés esetén indítsa el saját maga (a szkript a végére írja ki a pontos parancsot – ez módokonként kissé eltér):

cd IntraCord
./remote_up.sh
cd IntraCord
./remote_up.sh --build

Az első indítás összeállítási módban több percet vesz igénybe – a Dockernek mind az API, mind a felhasználói felület képfájljait össze kell építenie, mielőtt a stack megjelenik.

Hozzáférés az alkalmazásához

Alkalmazása a végére nyomtatott telepítőszkript URL-címén lesz elérhető:

  • Nyilvános IP-cím (megbízható tanúsítvány): https://<your-ip-with-dashes>.sslip.io – például https://203-0-113-10.sslip.io. Nincs böngésző figyelmeztetés.
  • Saját aláírás (privát IP): https://YOUR_SERVER_IP

Most már képesnek kell lennie Voice Agent létrehozására és tesztelésére.

Konfigurációs megjegyzések

  • A távoli üzembe helyezés egy nginx fordított proxyt tartalmaz a HTTPS-lezáráshoz
  • A fájlletöltések (átiratok, felvételek) automatikusan átirányításra kerülnek az nginx-en keresztül
  • A valós idejű szolgáltatások WebSocket-kapcsolatai megfelelően proxyval vannak ellátva
  • A nyilvános IP-telepítések megbízható Let's Encrypt tanúsítványt kapnak (az sslip.io-n keresztül), amely automatikusan megújul; A privát IP-telepítések önaláírt tanúsítványt használnak (figyelmeztetés a böngészőre)
  • A TURN szerver (coturn) a WebRTC NAT bejárására van konfigurálva
  • A megfelelő SSL- és tartománynevekkel rendelkező éles telepítésekkel kapcsolatban tekintse meg az Egyéni tartomány dokumentációját.

Létrehozott fájlok

A telepítő parancsfájl a következő fájlokat hozza létre a IntraCord/ könyvtárban:

FájlCél
docker-compose.yamlMain Docker Compose konfiguráció
docker-compose.override.yamlÉpítési direktívák a api és ui számára (csak összeállítási módban)
remote_up.shEllenőrzött indító wrapper a távoli stackhez
scripts/run_IntraCord_init.shA Docker Compose
scripts/lib/setup_common.shMegosztott telepítési segédkönyvtár
deploy/templates/nginx és coturn futásidejű konfigurációs sablonok
generate_certificate.shSzkript az SSL-tanúsítványok újragenerálásához
certs/local.crtSSL-tanúsítvány (Titkosítsuk az sslip.io-n keresztül, vagy önaláírt)
certs/local.keySSL privát kulcs
.envEgyetlen igazságforrás a telepítési beállításokhoz (TURN titkos, JWT titkos, FastAPI dolgozók száma, nyilvános gazdagép/alap URL)

Építés a forrásból

Ha fenntart egy elágazást, vagy szeretné elküldeni a helyi kód módosításait anélkül, hogy megvárná a hivatalos lemezkép-kiadást, válassza a build lehetőséget, amikor a telepítő parancsfájl a telepítési módot kéri.

Ebben a módban a szkript:

  1. Klónozza a repót a IntraCord/ fájlba (alapértelmezett: IntraCord-hq/IntraCord@main; a szkript kérni fog egy owner/name és branch kódot, hogy a villa saját magára mutasson).
  2. Ha a szkriptet egy meglévő IntraCord pénztárból futtatja, felajánlja a pénztár használatát a klónozás helyett.
  3. Létrehoz egy docker-compose.override.yaml-t a docker-compose.yaml mellett, amely felcseréli a image: direktívákat helyi build: direktívákra. A Docker Compose automatikusan betölti a felülbírálási fájlt – nem kell átadnia semmilyen -f jelzőt.

Frissítés kódváltás után

Amikor a kódbázis megváltozik – egy git pull, egy helyi szerkesztés vagy egy almodul bump –, építse újra a api és ui képeket, és hozza létre újra a futó tárolókat, hogy azok felvegyék az új kódot.

TL;DR (egy lépésben újraépíti a szolgáltatásokat és újraindítja):

cd IntraCord
sudo docker compose --profile remote up -d --build

A --build újraépít minden olyan szolgáltatást, amelynek build: kontextusa megváltozott (mind a api, mind a ui a docker-compose.override.yaml által írt docker-compose.override.yaml-n keresztül van bekötve), és PHQQX0000000ZX újra létrehozza az érintett tárolókat, így azok lefutnak az új lemezképről.

Lépésről lépésre – használja ezt, ha friss kódot vesz le egy távirányítóról, vagy ha egyértelmű akar lenni:

cd IntraCord

# 1. Pull the latest source.
git pull
git submodule update --init --recursive # picks up pipecat submodule bumps

# 2. Rebuild both images.
sudo docker compose --profile remote build api ui

# 3. Recreate the running containers so they use the new images.
sudo docker compose --profile remote up -d

Egyetlen szolgáltatás újjáépítése – gyorsabb, ha csak az egyik oldalt változtatta meg:

sudo docker compose --profile remote build api # or: build ui
sudo docker compose --profile remote up -d api # or: up -d ui

Tiszta újraépítés kényszerítése – akkor szükséges, ha az alapkép megváltozott, pip install került hozzáadásra, vagy ha elavult rétegre gyanakszik:

sudo docker compose --profile remote build --no-cache api ui
sudo docker compose --profile remote up -d

Ellenőrizze, hogy a tárolók valóban újra lettek-e létrehozva – ellenőrizze, hogy a CREATED oszlopban a legutóbbi időbélyeg látható, nem percekkel/órákkal ezelőtt:

sudo docker compose --profile remote ps

A hivatalos képek lekéréséhez való visszatéréshez törölje a docker-compose.override.yaml elemet, és indítsa el a stacket a --pull always Stringgel, ahogy az előre beépített folyamatban.

Következő lépések

Most, hogy létrehozhat és tesztelhet Voice Agentet, beállíthat egy egyéni tartományt és beállíthatja az SSL-t a letsencrypt segítségével. Tekintse meg az Egyéni domain oldalt, hogy megtudja, hogyan teheti meg.