Skip to Content
Rendez-vous.ai Dashboard 1.1.0 is released šŸŽ‰
Getting StartedRunning Locally

Running Locally

Because Rendez-vous.ai is a distributed system, the order in which you start the services matters. The Core API relies on the Dashboard (Payload CMS) being available to fetch the GraphQL schema and database records.

Follow these steps to spin up your local development environment.


1. Start Stateful Dependencies

Before starting any Node.js applications, you need your PostgreSQL database and S3-compatible storage (MinIO) running.

Create a docker-compose.yml (or podman-compose.yml) file anywhere on your local machine with the following combined configuration for Postgres and MinIO:

docker-compose.yml
services: postgres: container_name: postgres image: postgres:latest ports: - "5432:5432" environment: POSTGRES_USER: "admin" POSTGRES_HOST_AUTH_METHOD: "trust" minio: container_name: minio image: minio/minio:latest ports: - "9000:9000" - "9001:9001" environment: MINIO_ROOT_USER: "admin" MINIO_ROOT_PASSWORD: "12345678" command: server --console-address ":9001" /data createbuckets: container_name: createbuckets image: minio/mc depends_on: - minio restart: 'no' labels: {"com.docker.compose.oneoff=true"} deploy: { restart_policy: { condition: none } } entrypoint: > /bin/sh -c " sleep 5; /usr/bin/mc alias set myminio http://minio:9000 admin 12345678; /usr/bin/mc mb -p myminio/media; exit 0; "

Start the containers in detached mode using Podman:

podman-compose up -d

Verify: Ensure your database is accepting connections on localhost:5432 and MinIO is accessible on localhost:9001.


2. Start the Dashboard & CMS

The Dashboard acts as the single source of truth. It must be running for the Core API to function.

Open a new terminal window, navigate to the Dashboard repository, install dependencies using pnpm, and start the development server.

cd rdv.ai-dashboard corepack enable pnpm pnpm install pnpm dev

The Dashboard should now be accessible at https://localhost:3000Ā .


3. Start the Core API & Ngrok Tunnel

The Core API requires two terminal windows: one for the Express server and one for the Ngrok tunnel (to receive telephony webhooks).

Terminal A (The API Server): Navigate to the API repository. Remember, this repository uses native npm.

cd rdv.ai-API npm install npm run dev

The Core API should now be running (typically on http://localhost:3001Ā  or the port specified in your .env).

Terminal B (The Ngrok Tunnel): In the same rdv.ai-API directory, start your Ngrok tunnel using the provided npm script. This relies on the NGROK_URL variable you set in .env.local.

npm run ngrok

Copy the public HTTPS URL generated by Ngrok. You will need this for the next step.


4. Bridge Telephony (The K8s Secret)

To test incoming phone calls, you need to tell the cloud-hosted FreeSWITCH instance to route its traffic to your local Ngrok tunnel.

  1. Ensure you have kubectl access configured for the beta or stable cluster.
  2. Update the API_HOST secret in the freeswitch namespace to match your Ngrok URL.
kubectl edit secret/secret -n freeswitch

Change the API_HOST value to your Ngrok domain (e.g., your-domain.ngrok-free.app), omitting the https:// prefix.

Once updated, dialing your test Twilio or VoIP.ms phone numbers will route the call through the Kubernetes FreeSWITCH instance directly into your local rdv.ai-API debugger.


5. Start the Web Widget (Optional)

If you are working on the text-based chat interface, you can start the lightweight Vite development server for the widget.

Open a new terminal window:

cd rdv.ai-widget corepack enable pnpm pnpm install pnpm dev

This will spin up a local preview of the widget, allowing you to test its connection to your locally running Core API.

Last updated on