Files
meet/docs/developping_locally.md
T
lebaudantoine 0a6724e7ad 🔧(compose) make the LiveKit agents opt-in in the local dev stack
`make run` no longer starts the metadata collector and the
multi-user transcriber. On my machine, this saves about 400 MB
of RAM and almost 2% CPU, out of the 11% the stack uses.
Start them with `make run-agents` when needed.

Disable `METADATA_COLLECTOR_ENABLED` by default in `common.dist` so
the backend does not dispatch jobs to an agent that is not running,
and document how to enable each agent in `developping_locally.md`.
2026-10-06 22:56:57 +02:00

5.2 KiB
Raw Blame History

Getting Started

Before setting up, let's review Visio's architecture.

Visio consists of four main components that run simultaneously:

  • React frontend, built with Vite.js
  • Django server
  • LiveKit server
  • FastAPI server (optional, required for AI beta features)

These components rely on a few key services:

  • PostgreSQL for storing data (users, rooms, recordings)
  • Redis for caching and inter-service communication
  • Garage for storing files (room recordings)
  • Celery workers for meeting transcript (optional, required for AI beta features)

We provide two stack options for getting Visio up and running for development:

  • Docker Compose stack (recommended for most users)
  • Kubernetes stack powered by Tilt (Advanced)

We recommend starting with the Docker Compose option for simplicity. However, if you're comfortable with running Kubernetes locally, the advanced option mirrors the production environment and provides most of the tools required for development (e.g., hot reloading).

These instructions are for macOS or Ubuntu. For other distros, adjust as needed.

If any steps are outdated, please let us know!


We also provide GNU make utilities. To view all available Make rules, run:

$ make help

Need Help?

If you need any assistance or have questions while getting started, feel free to reach out to @lebaudantoine anytime! Antoine is available to help you onboard and guide you through the process. Chat with him @antoine.lebaud:matrix.org, or from the support hotline.


Option 1: Developing with Docker

Prerequisites

  1. Ensure you have a recent version of Docker and Docker Compose installed:
$ docker -v
Docker version 20.10.2, build 2291f61

$ docker compose version
Docker Compose version v2.32.4
  1. Install LiveKit CLI by following the instructions available in the official repository. After installation, verify that it's working:
$ lk --version
lk version 2.3.1

Project Bootstrap

  1. Bootstrap the project using the Make command. This will build the app container, install dependencies, run database migrations, and compile translations:
$ make bootstrap FLUSH_ARGS='--no-input'
  1. Access the project:

Developing

  • To stop the application:
$ make stop
  • To restart the application:
$ make run
  • For frontend development, start all backend services without the frontend container:
$ make run-backend

Then:

$ make frontend-development-install
$ make run-frontend-development

Which is equivalent to these direct npm commands:

$ cd src/frontend
$ npm i
$ npm run dev

LiveKit agents (optional)

The LiveKit agents are not started by make run. Each one runs its own container and stays connected to LiveKit, which costs CPU and memory you don't need unless you work on the features they power. Start them only when you need them.

Agent Feature Make command Setting in env.d/development/common
metadata-collector-dev Recording metadata (used to identify speakers in transcripts) make run-agent-metadata-collector METADATA_COLLECTOR_ENABLED=True
multi-user-transcriber-dev Live subtitles make run-agent-multi-user-transcriber ROOM_SUBTITLE_ENABLED=True

To start both at once:

$ make run-agents

Then set the matching settings to True and restart the backend so it picks them up:

$ make run-backend

The multi-user transcriber also needs a speech-to-text provider. Configure STT_PROVIDER and its credentials in env.d/development/multi_user_transcriber.

Keep the settings and the agents in sync: if a setting is True while its agent is stopped, the backend still dispatches jobs to it and the feature fails silently.


Adding Content

You can bootstrap demo data with a single command:

$ make demo

Option 2: Developing with Kubernetes

Visio is deployed across staging, preprod, and production environments using Kubernetes (K8s). Reproducing the environment locally is crucial for developing new features or debugging.

This is facilitated by Tilt, which provides Kubernetes-like development for local environments, enabling smart rebuilds and live updates.

Getting Started

Make sure you have the following installed:

  • kubectl
  • helm
  • helmfile
  • tilt

To build and start the Kubernetes cluster using Kind:

$ make build-k8s-cluster 

Once the Kubernetes cluster is ready, start the application stack locally:

$ make start-tilt-keycloak

Monitor Tilt’s progress at http://localhost:10350/. After Tilt actions finish, you can access the app at https://meet.127.0.0.1.nip.io/.