Skip to content
Olivasal Olivasal

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

WorkloadvCPURAMDiskBandwidth
1 live meeting, no recording24 GB20 GB50 Mbps sym
2 live meetings, no recording48 GB40 GB100 Mbps sym
1 meeting + recording48 GB100 GB+50 Mbps sym
2 meetings + recording6–812 GB200 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. Set proxy_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 with BRANDING_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