Skip to main content

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 / npm for Node.js
    • pip / poetry / pipenv for 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.