> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lobbystack.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Third-party providers

> What each external provider does in a self-hosted LobbyStack deployment.

Self-hosting means connecting your own provider accounts. The provider list below is based on the current codebase and `.env.example`.

<Note>
  The [Docker Compose baseline](/self-hosting/docker-compose) runs Convex, the voice gateway, and the web dashboard on **one host** with Caddy for public HTTPS. Split hosting (for example voice on Fly.io and web on static hosting) is optional and requires more manual URL and secret wiring.
</Note>

## Required for live calls

<AccordionGroup>
  <Accordion title="Convex - backend, database, auth, and HTTP endpoints" icon="database">
    Convex stores business data, call records, contacts, appointments, knowledge, billing state, and app settings. It also runs backend functions and HTTP endpoints used by Twilio, the voice gateway, calendar callbacks, and downloads.

    **Docker Compose:** uses the open-source backend image `ghcr.io/get-convex/convex-backend` plus the Convex dashboard container. Configure `CONVEX_URL`, `CONVEX_SITE_URL`, and sync secrets into the deployment with `pnpm self-hosted:convex:env`.

    **Convex Cloud dev:** contributors use `pnpm convex dev` with `CONVEX_DEPLOYMENT` in `.env.local`. That path is for development, not production self-hosting.

    The web dashboard reads `CONVEX_URL` and `CONVEX_SITE_URL` at build time.
  </Accordion>

  <Accordion title="Twilio - phone numbers, voice, SMS, and verification" icon="phone">
    Twilio provides phone numbers, inbound voice webhooks, Media Streams, SMS delivery, and phone verification.

    Live voice requires a Twilio number with its voice webhook pointing at the voice gateway. Onboarding phone verification requires `TWILIO_VERIFY_SERVICE_SID`.
  </Accordion>

  <Accordion title="OpenAI - Realtime voice" icon="microphone">
    OpenAI powers live voice conversations through the Realtime API. Configure `OPENAI_API_KEY` on the voice gateway.

    You pay OpenAI directly for self-hosted usage.
  </Accordion>

  <Accordion title="Voice gateway hosting" icon="server">
    The voice gateway is a Node.js service with a public HTTPS URL. Twilio must be able to reach it for inbound calls and media streams.

    **Docker Compose (recommended):** the voice gateway runs as a Compose service. Caddy exposes `VOICE_HOSTNAME` with TLS. Set `VOICE_GATEWAY_BASE_URL` to the public voice URL and configure Twilio accordingly.

    **Split deployment (advanced):** host the voice gateway separately—for example with [`fly.voice-gateway.toml`](https://github.com/lobbystack/lobbystack/blob/main/fly.voice-gateway.toml) on Fly.io—and point `VOICE_GATEWAY_BASE_URL` and Twilio webhooks at that URL.
  </Accordion>
</AccordionGroup>

## Optional providers

<AccordionGroup>
  <Accordion title="Google Calendar" icon="calendar">
    Google Calendar enables calendar availability and booking sync. Configure Google OAuth variables and `SESSION_ENCRYPTION_KEY`.
  </Accordion>

  <Accordion title="Firecrawl" icon="globe">
    Firecrawl powers website knowledge import. Without it, operators can still add text entries and upload documents.
  </Accordion>

  <Accordion title="Google Gemini" icon="magnifying-glass">
    Gemini is used for embeddings and non-realtime text generation in knowledge and SMS flows.
  </Accordion>

  <Accordion title="Resend" icon="envelope">
    Resend sends password reset and email-change emails. Without email delivery, those auth flows will not work correctly in production.
  </Accordion>

  <Accordion title="PostHog" icon="chart-line">
    PostHog is used for analytics and telemetry when configured.
  </Accordion>
</AccordionGroup>
