General
The backend consists of two required services and a number of optional ones, depending on the scenario.
| Service | Purpose | |
|---|---|---|
| Ubiq Server | Room and session state - avatars, transforms, ownership | required |
| Database API | Scene definitions and the logging API, backed by MongoDB | required |
VR Agent (vr-agent/) |
LLM agents for the Bots | optional |
TTS/STT (tts-stt/) |
Speech-to-text and text-to-speech for the agents | optional |
Speech (speech2text/) |
Whisper speech-to-text for voice input | optional |
Chatbot (chatbot/) |
Older voice chatbot host | optional |
Which client setting points to which service is listed in Endpoints Configuration.
All of them live in the Va.Si.Li-Lab-backend monorepo.
Backend documentation
Each module - its endpoints, environment variables and deployment - is documented at texttechnologylab.github.io/Va.Si.Li-Lab-backend.
The pages in this section cover what the Unity client needs from each service; the backend docs cover the services themselves.
Deploying the full stack
A standardised Docker Compose deployment exists as part of InterView, which brings the services up together - the Ubiq room server, the Database API, a Janus WebRTC gateway, an optional TURN relay and a web client - with versioned configuration instead of individually started containers.
Start here for a full deployment
The InterView Setup Guide walks through the whole stack step by step, including the prerequisites that are easy to miss: an external MongoDB, DNS records, firewall port ranges, and a TLS-terminating reverse proxy that correctly forwards WebSocket upgrades.
The stack was built for the FACES project, but nothing in it is FACES-specific apart from the web client - the same deployment serves any Va.Si.Li-Lab scenario that needs a room server and a logging backend.