Backend – Get Started
This document explains how the CallPilot backend is organized and what you need to start working with the microservices.
The backend is not a monorepo.
Each microservice lives in its own repository, with its own environment variables, setup, and CI/CD.
Microservices overview
The main backend services are:
-
callpilot-reports
Reporting APIs, dashboards, analytics, kanban data, and real-time reporting. -
callpilot-apps-service
Core CallPilot application logic (campaigns, flows, channels, users, orgs, etc.).
Main API consumed by the web app. -
callpilot-socket
WebSocket gateway for real-time events (notifications, UI updates, some live data). -
contact-center-callpilot-service
Contact center domain (conversations, agents, queues, routing, transcripts). -
callpilot-billing
Plans, subscriptions, usage metering, invoices, and billing workflows. -
callpilot-twilio
Twilio integration (voice, SIP, WhatsApp, callbacks, webhooks). -
audiosocket-callpilot
Audio streaming / media sockets (live audio, audio pipelines). -
callpilot-lambdas
Small serverless functions (maintenance jobs, utilities, async workers). -
events-callpilot
Event dispatcher / event bus integration (publish/subscribe, audit events). -
ari-callpilot
ARI (Asterisk REST Interface) / telephony control service (where applicable).
Each service has:
- Its own repository
- Its own .env / configuration
- Its own pipeline (build & deploy)
- Its own README with detailed setup
Tech stack (high level)
- Languages / Frameworks
- Python (FastAPI, workers)
- Node.js (REST APIs, workers, lambdas)
- Databases
- PostgreSQL
- MongoDB (for specific services)
- Messaging / Events
- Queues / topics (Azure or other broker)
- Infra
- Azure App Services / Container Apps
- Functions / serverless for lambdas
- Testing
- Pytest (Python)
- Jest / Vitest (Node)
Each repository should list its exact versions and tools in its own README.md.
Prerequisites
To work on any backend microservice you typically need:
- Node.js (version defined in each repo, usually
>= 18) - Python (for FastAPI services, e.g.
>= 3.10) - Package managers
pnpm/yarn/npmfor Node.jspip/poetry/pipenvfor Python
- Access to:
- The corresponding GitHub repos (one per microservice)
- DEV environment variables / KeyVault / secrets
- DEV or local DB connection strings (where applicable)
Always check the README of each service for specific requirements.