Ugrás a fő tartalomhoz

Setup

Az IntraCord egy Next.js UI-ból (ui/), egy FastAPI backendből (api/) és egy Pipecat alapú voice pipeline-ból (pipecat/, Git submodule) áll. A kapcsolódó szolgáltatásokat a PostgreSQL, a Redis és a MinIO biztosítja.

Setup

Szüksége lesz Gitre, egy helyi Docker engine-re — például Docker Desktopra —, valamint VS Code-ra a Dev Containers extensionnel.

  1. Forkolja az IntraCord-hq/IntraCord repositoryt, majd klónozza a saját forkját:
git clone https://github.com/<YOUR_HANDLE>/IntraCord
cd IntraCord
  1. Nyissa meg a mappát VS Code-ban, majd futtassa a Dev Containers: Reopen in Container parancsot. Az első build több percig tarthat: elindítja a PostgreSQL-t, a Redist és a MinIO-t, előkészíti a Python virtual environmentet, létrehozza a .env fájlokat, és telepíti a UI dependencies-t. A későbbi megnyitások már gyorsak.

  2. Indítsa el a backendet a container egyik terminaljából. A script megvárja a health check eredményét és status summaryt ír ki; ha sikeresen befejeződik, a backend fut:

bash scripts/start_services_dev.sh
  1. Egy második container terminalból indítsa el a UI-t:
cd ui && npm run dev -- --hostname 0.0.0.0
  1. Nyissa meg az alkalmazást a http://localhost:3000 címen.

Ha a lépések nem működnek, nyisson issue-t a GitHubon.

Közvetlenül az IntraCord-hq/IntraCord repositoryt klónozta a saját forkja helyett?

Futtassa egyszer a bash scripts/setup_fork.sh parancsot. A script bekéri a fork URL-jét, arra állítja az origin remote-ot, majd upstream remote-ként hozzáadja az IntraCord-hq/IntraCord repositoryt. Lásd: Fork és upstream remote-ok.

Nem használ VS Code-ot vagy devcontainert?

A devcontainer headless módban is futtatható a Dev Container CLI-val, illetve mindent futtathat közvetlenül a hoston.

Napi workflow

FeladatParancs vagy eljárás
Backend újraindításaFuttassa újra a bash scripts/start_services_dev.sh parancsot; előbb leállítja a régi processeket
Backend leállításabash scripts/stop_services.sh
Backend logoktail -f logs/latest/*.log
Code reloadAz api/ alatti módosítások automatikusan újratöltődnek; az ari_manager, a campaign_orchestrator és az arq backend restartot igényel
Container rebuildCsak a .devcontainer/, az api/requirements*.txt vagy a pipecat/ módosításakor szükséges; egyszerű source code változtatásnál nem
Pipecat submodule szinkronizálásaSubmodule-frissítés pullolása után: git submodule update --init --recursive

Debugging

A repository .vscode/launch.json fájlja minden backend service-hez és a pytesthez tartalmaz debug configurationt. Ha a start script helyett debuggerrel szeretné futtatni a rendszert:

  1. Állítsa le a script által kezelt backendet, hogy felszabaduljanak a portok:
bash scripts/stop_services.sh
  1. A VS Code Run and Debug paneljén válasszon configurationt, majd nyomja meg az F5 billentyűt:
ConfigurationMit futtat
API: Uvicorn (reload)FastAPI backend auto-reloaddal; a portot az api/.env UVICORN_PORT értéke adja meg, alapértelmezés szerint 8000
API: Arq worker (watch) / API: Campaign orchestrator / API: ARI managerTovábbi backend service-ek; szükség szerint indítsa el őket az Uvicorn mellett
Tests: API (pytest, full suite / current file)pytest debugger alatt, az api/.env.test használatával
Tests: Pipecat (pytest, current file) / Python: Current filePipecat test vagy önálló script debugolása

Minden configuration betölti az api/.env fájlt; a test configuration bejegyzések az api/.env.test fájlt használják. A justMyCode: false beállítás miatt a FastAPI és a Pipecat kódjába is beléphet, a pipecat/ submodule breakpointjai pedig működnek, mert editable módban van telepítve. A devcontainerben a Python interpreter előre ki van választva. Host-managed setup esetén előbb válassza ki a ./venv/bin/python interpretert a Python: Select Interpreter paranccsal.

Repository layout

PathTartalom
ui/Next.js frontend: Workflow Builder, Dashboard és Agent Editor
api/FastAPI backend: REST API, Campaign orchestration, telephony és ARQ background workerek
pipecat/Git submodule a voice pipeline-hoz (STT → LLM → TTS)
docs/MDX-ben írt Docusaurus dokumentáció; preview: npm start
sdk/Python és TypeScript SDK az IntraCord programozott vezérléséhez
scripts/Setup, deployment és update scriptek
deploy/Remote deploymenthez használt nginx- és coturn-configuration template-ek

Változtatás beküldése

  1. Hozzon létre egy branchet, majd végezze el a módosítást.
  2. Pusholja a saját forkjába (origin), majd nyisson pull requestet az IntraCord-hq/IntraCord:main branchre.
  3. Egy maintainer elvégzi a review-t, majd merge-eli a változtatást.

A bug reportokat és feature ötleteket a GitHub Issues, illetve az Ideas oldalon küldheti be. A good first issue címkéjű issue-k jó kiindulópontok. Fejlesztés közbeni kérdésekhez használja az IntraCord Community Slacket.

Saját buildet szeretne deployolni upstream contribution helyett? Lásd: Deployments.