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.envfájlban, ha még nem léteznek- Létrehozza a
POSTGRES_PASSWORD-t a vadonatúj.envfá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.ioURL-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-inita.envfá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áulhttps://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ájl | Cél |
|---|---|
docker-compose.yaml | Main 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.sh | Ellenőrzött indító wrapper a távoli stackhez |
scripts/run_IntraCord_init.sh | A Docker Compose |
scripts/lib/setup_common.sh | Megosztott telepítési segédkönyvtár |
deploy/templates/ | nginx és coturn futásidejű konfigurációs sablonok |
generate_certificate.sh | Szkript az SSL-tanúsítványok újragenerálásához |
certs/local.crt | SSL-tanúsítvány (Titkosítsuk az sslip.io-n keresztül, vagy önaláírt) |
certs/local.key | SSL privát kulcs |
.env | Egyetlen 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:
- Klónozza a repót a
IntraCord/fájlba (alapértelmezett:IntraCord-hq/IntraCord@main; a szkript kérni fog egyowner/nameésbranchkódot, hogy a villa saját magára mutasson). - 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.
- Létrehoz egy
docker-compose.override.yaml-t adocker-compose.yamlmellett, amely felcseréli aimage:direktívákat helyibuild:direktívákra. A Docker Compose automatikusan betölti a felülbírálási fájlt – nem kell átadnia semmilyen-fjelző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.