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.
-
Open the firewall. Allow TCP 80 and 443, UDP and TCP 5060, TCP 5063, and UDP 19000–19100. Details in Networking.
-
Point a domain at the host. Create a DNS A record such as
voice.yourdomain.comfor the host’s public IPv4, and check it resolves:Terminal window dig +short voice.yourdomain.com -
Run the installer on the host:
Terminal window curl -fsSL https://raw.githubusercontent.com/comcent-io/comcent-ce/main/install.sh | bashIt installs Docker if needed, generates secrets and writes
docker-compose.yamland.envinto~/comcent-ce/. It does not start anything. -
Fill in
.env. Replace everyreplaceMe: your domain, a Let’s Encrypt email, the sender address, SMTP, and your S3 bucket credentials. See Configuration.Terminal window nano ~/comcent-ce/.env -
Start the stack.
Terminal window cd ~/comcent-cedocker compose up -dThe first run pulls about 800 MB of images and takes 5–10 minutes.
-
Claim your instance. Copy the one-time setup token from the logs, then open
https://voice.yourdomain.com/setupand create the first admin account and organisation.Terminal window docker compose logs server | grep -A 10 "FIRST-RUN SETUP" -
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.
-
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.