Skip to content

Installation and Deployment Guide

Welcome to CXMind Core (Open Source Edition)! This guide will take you through deploying a complete signaling monitoring and analysis system locally or on a server using Docker Compose.

1. Environmental Dependencies

Before starting, please ensure your server or local development environment has the following basic software installed:

  • Docker Engine (Version 20.10.0+ or higher)
  • Docker Compose (Version v2.0.0+ or higher)
  • If using a Linux server, Rocky Linux 9 or Ubuntu 22.04 LTS is recommended.
  • Recommended configuration: 2 CPU cores, 4GB RAM, 20GB disk space.

2. Quick Deployment (Docker Compose)

The CXMind Community Edition has packaged all dependent components (Ingestion Engine, Database, Memory Cache, Admin UI) into a pre-configured docker-compose.community.yml. You can pull up the complete system in just two steps:

Step 1: Clone the Source Code Repository

bash
git clone https://github.com/cxmind/cxmind-core.git
cd cxmind-core

Step 2: Start Community Edition Services

Execute the following command, and Docker will automatically pull the required images and start all containers:

bash
docker-compose -f docker-compose.community.yml up -d

The startup process usually takes 1~2 minutes (Initial startup requires downloading images and initializing the database structure). Please be patient.

Step 3: Verify Running Status

Check if all containers are in the Up status using the following command:

bash
docker-compose -f docker-compose.community.yml ps

If everything is normal, you should see critical services running, including ie (Ingestion Engine), admin-ui (Admin UI), surrealdb, and redis.

3. Accessing the Admin UI

After the services start successfully, you can access the local admin console interface using a modern browser:

  • Access Address: http://localhost:5173 (If deployed on a cloud server, replace localhost with the server's public IP)
  • Default Account: admin@cxmi.ai
  • Default Password: admin123

Security Tip: It is strongly recommended to change your administrator password in the system settings after your first login.

4. Verify Data Ingestion via Simulator

To facilitate developers new to communication protocols to quickly experience it, we have built-in a PCAP signaling simulator. You can generate simulated call flows without a physical PBX:

bash
# Execute in the cxmind-core root directory
cd simulator
npm install
npm start

At this point, the simulator will throw SIP/RTCP signaling flows locally, and you can instantly see active call cards emerging in real-time on the monitoring dashboard of the Admin UI.

5. Advanced Deployment: Module Installation by Topology

When deploying CXMind in distributed environments using advanced Sniffer-Go topologies, you will need to install different components on different machines.

5.1 Simple Mode (Single Server)

All components reside on the same server.

  • Server: SIP PBX, RTPEngine, CXMind Core (IE, AS, AU, DB, Redis), Sniffer-Go.

5.2 Relay Mode (Separated SIP and RTP)

SIP signaling and RTP media are handled by separate servers.

  • SIP Server(s): SIP PBX, Sniffer-Go (configured to forward HEP to the RTP Server's Sniffer-Go).
  • RTP Server(s): RTPEngine, Sniffer-Go (configured in Relay Mode relay_upstream: true).
  • Central Server: CXMind Core (IE, AS, AU, DB, Redis).

5.3 Peer Mesh Mode (HA Clusters)

Multiple servers handle both SIP and RTP, with potential cross-server media routing.

  • Cluster Nodes (A, B, C...): SIP PBX, RTPEngine, Sniffer-Go (configured with hep_peers).
  • Central Server: CXMind Core (IE, AS, AU, DB, Redis).

For detailed config.yaml examples for these topologies, please refer to the private enterprise runbook: docs/runbooks/sniffer-go-deployment-topologies.md.

6. Common Troubleshooting

If you encounter startup problems, please check:

  1. Port Conflicts: Ensure that local ports 5173 (Frontend), 6379 (Redis), and signaling listening ports UDP 5060 and 9060 are not occupied.
  2. Check Logs: Use docker-compose -f docker-compose.community.yml logs -f ie to view the runtime logs of the core Ingestion Engine in real-time to determine if any specific configuration items are missing.

If you wish to unlock AI Emotion Recognition, High-Concurrency Media Recording Analysis, and RTP Voice Capture features after your experience, please visit cxmi.ai to apply for a Pro commercial license.

Released under the BSL License.