Skip to main content

Deployments

IntraCord is self-hosted with Docker. Everything ships as two images (IntraCord-api and IntraCord-ui) plus Postgres, Redis, and MinIO, orchestrated with Docker Compose. Pick the deployment path that matches what you're trying to do:

PathUse it whenGuide
Local DockerYou want to try IntraCord on your own machine. No public URL, no telephony.Docker → Option 1
Remote serverYou want a real server reachable from the internet, with HTTPS out of the box (via a free sslip.io certificate — no domain required).Docker → Option 2
Custom domainYou already have a remote deployment and want your own domain (e.g. voice.yourcompany.com) instead of the sslip.io URL.Custom Domain
HerokuOne-click PaaS deployment.Heroku — coming soon

Browsers treat microphone access as a secure-context feature, so the app must be served over HTTPS — or accessed at localhost/127.0.0.1 over HTTP, which is also a secure context. Local Docker uses http://localhost:3010 and therefore does not need a certificate.

After you deploy

Once the platform is running, these guides cover keeping it running:

  • Authentication — switch from the built-in local email/password provider to Stack Auth for social login.
  • Scaling — run multiple FastAPI workers behind nginx for higher call throughput.
  • Update — move an existing deployment to a newer IntraCord version.

Where to start

  1. Kicking the tires? Start with local Docker — running in a few minutes, no server needed.
  2. Putting it in front of real callers? Use remote server deployment, then layer on a custom domain if you want one.
  3. Already running and need to upgrade? Go straight to Update.
  4. Expecting high call volume? Read Scaling once your base deployment is live.