Skip to content

Quick start

This is the short version of the self-hosted install. Each step links to the detailed page.

You need a Linux host with a public IPv4 address (Ubuntu 22.04+ or Debian 12+, 2 vCPU / 4 GB RAM is plenty), a domain name, and a SIP trunk if you want to reach real phone numbers. See Requirements.

  1. Open the firewall. Allow TCP 80 and 443, UDP and TCP 5060, TCP 5063, and UDP 19000–19100. Details in Networking.

  2. Point a domain at the host. Create a DNS A record such as voice.yourdomain.com for the host’s public IPv4, and check it resolves:

    Terminal window
    dig +short voice.yourdomain.com
  3. Run the installer on the host:

    Terminal window
    curl -fsSL https://raw.githubusercontent.com/comcent-io/comcent-ce/main/install.sh | bash

    It installs Docker if needed, generates secrets and writes docker-compose.yaml and .env into ~/comcent-ce/. It does not start anything.

  4. Fill in .env. Replace every replaceMe: your domain, a Let’s Encrypt email, the sender address, SMTP, and your S3 bucket credentials. See Configuration.

    Terminal window
    nano ~/comcent-ce/.env
  5. Start the stack.

    Terminal window
    cd ~/comcent-ce
    docker compose up -d

    The first run pulls about 800 MB of images and takes 5–10 minutes.

  6. Claim your instance. Copy the one-time setup token from the logs, then open https://voice.yourdomain.com/setup and create the first admin account and organisation.

    Terminal window
    docker compose logs server | grep -A 10 "FIRST-RUN SETUP"
  7. Connect your SIP trunk under Sip Trunk in the sidebar, and allow your host’s IP on the provider’s side. See SIP trunks and numbers.

  8. Add your number and its inbound flow under Numbers. The simplest flow is Start → Dial with To set to your own SIP username. Call the number and it rings in your browser dialer.

Something not working? See Troubleshooting.