Docker Compose
The quickest way to get a self-hosted instance running is with Docker Compose. All services — including the database, cache, and file storage — are bundled into a single docker-compose.yml file.Note: See how it works for an overview of the services that make up the application.
Requirements
- Docker 24+
- Docker Compose v2.20+
- Minimum 2 GB RAM and 2 vCPUs (tested on Ubuntu 24.04)
Configuration
Environment variables can be provided in one of three ways:| Method | How |
|---|---|
.env file (recommended) | Place a .env file alongside docker-compose.yml |
| Inline in compose | Add an environment: block directly to each service |
| External secrets manager | Mount secrets as files and reference with env_file: |
.env file approach is recommended for self-hosted deployments.
Installation
Configure you docker compose
All environment variables are pre-configured in the docker-compose.yml file. You can skip this step and directly run docker compose.
If you want to customize the environment variables, you can create a
If you want to customize the environment variables, you can create a
.env file and edit the corresponding values.Wait for it to load
Access your frontend at: http://localhost:3123 (unless changed in variables)
Example docker-compose.yml file
Step 2 — Configure environment variables
Create a.env file in the same directory. At minimum, replace all changeme values with secure secrets.
Security: Never commit.envto version control. Add it to.gitignore.
Step 3 — Start the services
Step 4 — Access the application
| Service | URL | Notes |
|---|---|---|
| Builder (web UI) | http://localhost:3123 | Main application |
| PartySocket | http://localhost:1999 | WebSocket endpoint |
| Storage console | http://localhost:9001 | RustFS admin UI |
| Database admin | http://localhost:8080 | Adminer (optional) |
| Redis UI | http://localhost:5540 | RedisInsight (optional) |
Default Account
By default, in the open-source version, ChatbotX already has a Workspace set up, and you only need to log in to use it. Account information:- Email: demo@example.com
- Password: Demo@1234
Updating
Pull the latest images and restart:Troubleshooting
Builder fails to start Check that the database and Redis are healthy before the Builder comes up:filesystem-init exited with code 0. It creates the default bucket and sets public read permissions:
.env:
Next Steps
Architecture
Learn the architecture of the project
Channels
Set up channels such as Whatsapp, Messenger and Instagram