Installation guide
Deployment modes
| Mode | Best for | Timeline |
|---|---|---|
| Docker Compose (single host) | POC / demo / small teams | under 30 minutes |
| Docker Compose (multi host) | Mid-size orgs | 1–3 days |
| Kubernetes (Helm) | Large estates with a container platform | 2–5 days |
| Offline bundle | No public internet / domestic stack | site-specific |
Prerequisites
Hardware (minimum / recommended)
| Tier | Minimum | Recommended |
|---|---|---|
| CPU | 8 cores | 16 cores |
| RAM | 32 GB | 64 GB |
| Disk | 200 GB SSD | ≥1 TB NVMe SSD |
| GPU (optional for local LLMs) | — | A10 / A100 / H800 / Ascend |
Operating system
- Ubuntu 22.04 LTS (preferred) / 20.04
- CentOS Stream 9 / RHEL 9
- Unity / Kylin variants for domestic deployments
Software dependencies
| Component | Version | Role |
|---|---|---|
| Docker | 24.0+ | Runtime |
| Docker Compose | v2.20+ | Single-cluster orchestration |
| Git | 2.30+ | Source retrieval (private builds) |
| Nginx | 1.22+ | Reverse proxy (optional) |
Option A — Docker Compose (single host)
1. Fetch the bundle
2. Configure environment
Key variables:
3. Launch
Wait 3–5 minutes, then browse http://<server-ip>:9380.
4. First-run setup
- Open
http://<server-ip>:9380 - Create the admin user
- Configure LLM channels
- Send a smoke message
Option B — Docker Compose (multi host)
Split data plane (DB + ES + MinIO + Redis) from application plane (API + agent runtime + web).
Typical layout:
Reference compose files ship under deploy/multi-node/ in the delivery package.
Option C — Kubernetes (Helm)
Important values.yaml knobs:
Option D — Offline / air-gap
1. Stage images on an internet-connected builder
Ship the tarball and the deployment bundle (compose + templates).
2. Import on the isolated site
Physical media / data-diode transfer as required.
3. Load and start
Post-install checks
Health
Smoke test
- Create a chat in the web UI
- Expect an agent reply within seconds
- Logs should be free of ERROR lines
Functional smoke
| Area | Action |
|---|---|
| File upload | Upload a PDF; confirm parsing |
| KB search | Ask a question grounded in a document |
| Tooling / skills | Trigger a skill (e.g., “write hello world in Python”) |
| Channels | Send via Feishu / WeCom and confirm routing into a session |
Upgrade
The script:
- Backs up the database
- Runs schema migrations
- Pulls fresh images
- Rolling restarts services
- Runs health checks
Rollback
Rollback window: ~24 h after upgrade for one-click revert; beyond that, follow DB restore playbooks if schemas diverged.
FAQ
Q: Containers crash-loop?
A: Verify .env secrets (escape special chars), disk space, and docker compose logs <service>.
Q: Web loads but agents never answer? A: LLM credential or network path to the LLM endpoint (common in locked-down DCs).
Q: No docker hub access? A: Use Option D or mirror images into a private registry.
Related docs
- Security & compliance
- Monitoring & ops
- LLM configuration under Integrations