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.
- Forkolja az IntraCord-hq/IntraCord repositoryt, majd klónozza a saját forkját:
git clone https://github.com/<YOUR_HANDLE>/IntraCord
cd IntraCord
-
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
.envfájlokat, és telepíti a UI dependencies-t. A későbbi megnyitások már gyorsak. -
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
- Egy második container terminalból indítsa el a UI-t:
cd ui && npm run dev -- --hostname 0.0.0.0
- Nyissa meg az alkalmazást a
http://localhost:3000cí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
| Feladat | Parancs vagy eljárás |
|---|---|
| Backend újraindítása | Futtassa újra a bash scripts/start_services_dev.sh parancsot; előbb leállítja a régi processeket |
| Backend leállítása | bash scripts/stop_services.sh |
| Backend logok | tail -f logs/latest/*.log |
| Code reload | Az api/ alatti módosítások automatikusan újratöltődnek; az ari_manager, a campaign_orchestrator és az arq backend restartot igényel |
| Container rebuild | Csak 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ása | Submodule-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:
- Állítsa le a script által kezelt backendet, hogy felszabaduljanak a portok:
bash scripts/stop_services.sh
- A VS Code Run and Debug paneljén válasszon configurationt, majd nyomja meg az F5 billentyűt:
| Configuration | Mit 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 manager | Tová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 file | Pipecat 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
| Path | Tartalom |
|---|---|
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
- Hozzon létre egy branchet, majd végezze el a módosítást.
- Pusholja a saját forkjába (
origin), majd nyisson pull requestet azIntraCord-hq/IntraCord:mainbranchre. - 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.