Skip to content

Installation

Before you start, open the firewall ports and create the DNS record described in Networking. The HTTPS certificate cannot be issued until DNS resolves to the host.

SSH into the host and run:

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

The installer takes about 30 seconds and:

  1. Verifies curl and openssl, and installs Docker via get.docker.com if it is missing.
  2. Verifies the Docker Compose plugin.
  3. Detects the host’s public IP.
  4. Generates strong random values for POSTGRES_PASSWORD, RABBITMQ_PASSWORD, INTERNAL_API_PASSWORD, RPC_API_TOKEN, SECRET_KEY_BASE and SIGNING_KEY.
  5. Downloads docker-compose.deploy.yaml as docker-compose.yaml.
  6. Writes .env with file mode 600: known values filled in, the rest marked replaceMe.

Everything goes into ~/comcent-ce/. The installer does not pull images or start the stack.

Two environment variables change its behaviour:

VariableDefaultEffect
INSTALL_DIR~/comcent-ceWhere the files are written
COMCENT_BRANCHmainWhich branch of the repository to download the compose file from
Terminal window
nano ~/comcent-ce/.env

Search for replaceMe and replace every occurrence:

VariableWhat to set
COMCENT_DOMAINYour hostname, for example voice.yourdomain.com
LETSENCRYPT_EMAILEmail for certificate renewal alerts
SOURCE_EMAILSender for invites and password resets
SMTP_URLsmtp://user:pass@host:port. Leave blank to disable email.
STORAGE_BUCKET_NAME, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEYYour S3 or S3-compatible bucket for recordings and uploads

Optionally add DEEPGRAM_API_KEY and OPENAI_API_KEY to enable transcription, AI analysis and voice bots. The full list is in Configuration.

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

The first run pulls about 800 MB of images and takes 5–10 minutes. That is normal. Follow the server as it boots:

Terminal window
docker compose logs -f server

The HTTPS certificate is issued about a minute after the first start. Database migrations run automatically every time the server starts.

On first start the server prints a one-time setup token for creating the first admin account:

Terminal window
docker compose logs server | grep -A 10 "FIRST-RUN SETUP"
  1. Open https://<COMCENT_DOMAIN>/setup.
  2. Enter the setup token, your name, email and password, and your organisation’s details.
  3. Submit. You are now the instance’s super-admin and the first member of your organisation.

Lost the token? It is printed again on every server start until the instance is claimed:

Terminal window
docker compose restart server
docker compose logs server | grep -A 10 "FIRST-RUN SETUP"