Start here
Installation
Hardware sizing, services to run, and deployment topology for self-hosting Olivasal.
Olivasal runs on your own infrastructure — a single VPS for small teams, or a dedicated box with a GPU once you turn on AI recap.
Hardware sizing
| Workload | vCPU | RAM | Disk | Bandwidth |
|---|---|---|---|---|
| 1 live meeting, no recording | 2 | 4 GB | 20 GB | 50 Mbps sym |
| 2 live meetings, no recording | 4 | 8 GB | 40 GB | 100 Mbps sym |
| 1 meeting + recording | 4 | 8 GB | 100 GB+ | 50 Mbps sym |
| 2 meetings + recording | 6–8 | 12 GB | 200 GB+ | 100 Mbps sym |
For on-box AI recap, add a GPU. Transcription uses our speech-to-text engine and summarization uses a local language model (swap it with the SUMMARY_MODEL env var). A 24 GB GPU comfortably runs both; smaller summary models fit 8 GB cards. Tamil tracks route to a Tamil-optimized speech model (CPU by default).
Services
- Media server — real-time audio/video routing. Port
7880(+7881,7882/udp), exposed on its own subdomain (e.g.media.<your-domain>). Browsers connect to it directly. - API —
:3050. Application state + REST + live event stream (SSE). - Web app — a static single-page app, served by your web server from disk under
/app/. No port; no process entry. - Database (
27017) — persistent state. - Cache / job queue (
6379) — recording + recap jobs. - AI worker (
11434) — transcription + summaries. Optional.
Topology
Olivasal is browser-origin-relative, so one public host serves everything:
/→ the static marketing/docs site./app/*→ the static SPA. Build it with--base-href=/app/so asset URLs survive the path prefix./api/*→ reverse-proxied to the API on:3050. Setproxy_buffering off— the rooms event stream is SSE.media.<your-domain>→ the media server (:7880), browser-direct, not proxied.
The API’s apiUrl is relative (/api), so calls return to the same origin — no CORS.
Deployment notes
- Recordings live at
/var/lib/olivasal/recordings/<roomId>/<sessionId>/. - Workspace logos at
<project-root>/uploads/branding/<workspaceId>.<ext>; override withBRANDING_UPLOADS_DIR. - For OAuth send-as and Google Calendar, set the provider client IDs/secrets; for Tamil ASR set
HF_TOKEN. - Use automated TLS certificates. Don’t hand-edit your web-server config — let the TLS tooling manage it.
Next steps
- Configure AI recaps and recording.
- Review Security & encryption and Administration.