Prerequisites
Before diving into the codebase and spinning up the Rendez-vous.ai ecosystem, you need to ensure your local development environment is properly equipped.
Given the microservices nature of the project, we rely on standard Node.js environments for the applications and containerization for databases and telephony engines.
🛠️ Core Tools
- Node.js (v25.x): The backbone for the Dashboard, Core API, and Web Widget. We highly recommend using nvm (Node Version Manager) to easily switch between Node versions.
- Corepack & pnpm: For
rdv.ai-dashboardandrdv.ai-widget, we usepnpmmanaged via Corepack to ensure exact version matching across environments. Install Corepack globally and enable it:npm install -g corepack corepack enable - npm: The
rdv.ai-APIrepository uses standard, nativenpmfor its package management. - Git: For cloning the repositories and version control.
🐳 Containerization (Podman)
While the staging and stable environments run on Kubernetes, you do not need to run a local Kubernetes cluster (like Minikube or kind) for daily development. It adds unnecessary overhead.
Instead, we use Podman (and podman-compose) to spin up our stateful dependencies (PostgreSQL, MinIO/S3) locally. Podman provides a daemonless, rootless alternative to Docker that is highly recommended for this project.
- Install Podman: Follow the official installation instructions for your OS (macOS, Linux, or Windows).
- Install Podman Compose: Used to orchestrate the local database and media storage containers.
pip3 install podman-compose
📞 Telephony (FreeSWITCH) & Local Testing
Testing telephony locally presents a unique networking challenge. While it is technically possible to run rdv.ai-FreeSWITCH locally via Podman and test it using local SIP softphones (like Zoiper or Linphone), testing with live SIP Trunks (Twilio, VoIP.ms) locally is highly discouraged. Standard tunneling software (like ngrok) cannot effectively handle RTP (Real-time Transport Protocol) media streams, which require a massive range of open ports to function correctly.
The Recommended Workflow (K8s Bridge)
Instead of running FreeSWITCH locally, we recommend using the already-running FreeSWITCH instances in our beta or stable Kubernetes clusters and bridging them to your local API:
- Expose your locally running
rdv.ai-APIinstance to the internet using a tunneling service like ngrok (an additional script is prepared for launching ngrok seamlessly vianpm run ngrokinside therdv.ai-APIrepository). - Access the Kubernetes cluster and locate the
API_HOSTsecret within thefreeswitchnamespace. - Update the
API_HOSTsecret to point to your temporary ngrok URL.
This allows the cloud-hosted FreeSWITCH (which handles public SIP/RTP networking perfectly) to route call webhooks and audio streams directly to your local development environment for debugging.
🌐 External Accounts
To fully test the AI agents and ecosystem, you will need access to the following:
- Ngrok: An account to create the secure HTTP tunnel needed to expose your local
rdv.ai-APIto the Kubernetes FreeSWITCH instance. - Kubernetes Access:
kubectlaccess to thebetaorstableclusters to modify thefreeswitchnamespace secrets during active development.