Wukong AICRM Docker部署指南:从一键启动到API集成与批量任务测试

📅 2026/7/28 11:30:44 👁️ 阅读次数 📝 编程学习
Wukong AICRM Docker部署指南:从一键启动到API集成与批量任务测试

这次我们来看一个本地部署的 AI 客户关系管理工具——Wukong AICRM。对于需要处理客户数据、进行智能分析或自动化营销的团队来说,一个能私有化部署、支持批量任务且提供 API 接口的工具,其价值不言而喻。Wukong AICRM 正是这样一个项目,它通过 Docker 容器化技术,将复杂的 AI 应用部署过程简化到“一键启动”的程度。

本文将带你完整走通 Wukong AICRM 的 Docker 安装流程。核心关注点在于:它是否真的能一键启动?对硬件有什么要求?启动后如何访问 Web 界面和调用 API?是否支持批量导入客户数据?我们会从环境准备、镜像拉取、容器启动、服务访问到基础功能验证,一步步拆解,并提供详细的命令和配置示例。如果你关心如何在本地或内网快速搭建一个可用的 AI-CRM 系统,这篇文章可以直接收藏备用。

1. 核心能力速览

在深入部署细节前,我们先通过一个表格快速了解 Wukong AICRM 的核心特性和部署要求,这有助于你判断它是否适合你的场景。

能力项说明
项目类型基于 AI 的客户关系管理系统,可能集成对话、分析、自动化任务等功能。
部署方式Docker 一键安装(官方推荐),也支持源码手动安装用于二次开发。
核心依赖Docker 与 Docker Compose。这是运行的前提,不依赖复杂的 Python 环境配置。
硬件门槛取决于集成的 AI 模型。如果涉及大语言模型(LLM)推理,则需要足够的 CPU/内存,或支持 CUDA 的 GPU。对于基础的 CRM 功能,普通服务器即可。
显存占用不确定,需按实际集成的 AI 模型版本测试。如果仅使用规则引擎,可能无需 GPU。
启动方式通过docker-compose up -d命令后台启动全套服务(数据库、后端、前端等)。
服务访问启动后,通常可通过浏览器访问 Web 管理界面(如http://localhost:3000),并提供后端 API 接口。
是否支持 API。作为现代应用,几乎必然提供 RESTful API 供其他系统集成。
是否支持批量任务。CRM 系统的核心能力之一,应支持客户数据的批量导入、导出和处理。
数据持久化通过 Docker 卷(Volume)将数据库、上传文件等数据持久化在宿主机,容器重建不丢失。
适合场景中小企业内部客户管理、私域流量运营、需要与现有系统(如企微、钉钉)集成、对数据隐私有要求的场景。

从表格可以看出,Wukong AICRM 主打的是通过 Docker 实现快速、标准化部署,降低了运维复杂度。它的能力边界和资源消耗,很大程度上取决于其集成了哪些具体的 AI 模型(如用于智能客服的 LLM、用于线索分析的预测模型等)。

2. 适用场景与使用边界

在动手部署之前,明确工具的适用场景和边界至关重要,这能帮你避免“工具很好,但不适合我”的困境。

Wukong AICRM 适合谁?

  • 中小企业或创业团队:希望拥有一个功能可控、数据私有的客户管理系统,无需投入大量资金购买 SaaS 服务。
  • 开发者或运维人员:需要将客户管理能力以 API 形式集成到自有产品中,实现自动化工作流。
  • 对数据安全敏感的组织:如金融、医疗、法律等行业,客户数据不能存放在第三方云端。
  • 技术爱好者:希望学习或研究如何将 AI 能力(如智能分类、自动回复、预测分析)与传统 CRM 结合。

它能解决什么问题?

  1. 客户信息集中管理:统一存储客户资料、沟通记录、交易历史。
  2. 销售流程自动化:可能包含线索分配、跟进提醒、阶段推进等自动化规则。
  3. AI 智能辅助:这是“AICRM”的亮点,可能实现智能客服问答、沟通内容情感分析、客户意向预测、自动生成跟进话术等。
  4. 数据可视化与分析:提供仪表盘,展示客户增长、转化率、团队绩效等关键指标。
  5. 开放集成:通过 API 与微信、企业微信、邮件、短信平台乃至内部 ERP 系统打通。

不适合什么场景?

  • 超大型企业复杂流程:如果现有业务流程极其复杂且定制化程度高,一个开源项目可能难以满足所有需求,需要大量二次开发。
  • 追求“开箱即用”的零代码用户:虽然 Docker 简化了部署,但前期的服务器准备、域名配置、SSL 证书等仍需要一定的技术基础。它不是一个像“钉钉”或“Salesforce”那样注册即用的产品。
  • 仅需要单一功能:如果你只需要一个简单的联系人列表,那么使用 Excel 或 Notion 可能更轻量。

版权、隐私与安全边界

  • 数据合规:你对自己导入系统的所有客户数据负有完全的管理责任。必须确保数据收集、使用符合《个人信息保护法》等相关法律法规,获得客户必要授权。
  • AI 生成内容:如果系统集成了文本生成类 AI,其生成的内容(如自动回复、营销文案)需要人工审核,避免产生误导、虚假宣传或侵权内容。
  • 系统安全:部署后,务必修改默认密码,检查并限制 API 接口的访问权限(如设置 IP 白名单),定期更新 Docker 镜像以修复安全漏洞。切勿将管理界面直接暴露在公网而不加任何防护。

3. 环境准备与前置条件

Wukong AICRM 的 Docker 部署对宿主机环境有明确要求。按照以下清单检查你的环境,可以避免大部分启动失败的问题。

1. 操作系统

  • 推荐:Linux 发行版(如 Ubuntu 20.04/22.04 LTS, CentOS 7/8)。这是生产环境最常见的选择,资源占用少,稳定性高。
  • 也可用:Windows 10/11 Pro/Enterprise/Education 或 macOS。通过 Docker Desktop 运行,更适合开发和测试。
  • 不推荐:Windows 家庭版(需安装 WSL 2,步骤稍复杂)。

2. Docker 与 Docker Compose这是核心依赖。Wukong AICRM 的“一键安装”完全基于它们。

  • Docker Engine:版本 20.10.0 或更高。
  • Docker Compose:版本 v2.0.0 或更高。现在 Docker Compose 通常作为 Docker Desktop 的一部分或 Docker 插件提供。

检查命令:

# 检查 Docker 版本 docker --version # 检查 Docker Compose 版本 docker compose version

如果命令未找到或版本过低,需要先安装或升级。

3. 硬件资源

  • CPU:至少 2 核,建议 4 核以上。如果启用 AI 推理,需求会更高。
  • 内存:至少 4GB,建议 8GB 或以上。运行数据库、后端服务、前端界面以及可能的 AI 模型需要足够内存。
  • 磁盘空间:至少 10GB 可用空间,用于存放 Docker 镜像、数据库文件和日志。
  • GPU(可选):如果 Wukong AICRM 集成了需要 GPU 加速的视觉或大语言模型,则需要配备 NVIDIA GPU 并安装好对应的驱动和nvidia-container-toolkit。对于基础 CRM 功能,GPU 通常非必需。

4. 网络与端口

  • 网络:宿主机需要能正常访问互联网,用于拉取 Docker 镜像。
  • 端口:确保宿主机上以下端口未被其他应用占用(具体端口以项目docker-compose.yml为准,这里是常见示例):
    • 803000:Web 前端访问端口。
    • 80808000:后端 API 服务端口。
    • 3306:MySQL 数据库端口(如果内置于 Compose)。
    • 6379:Redis 缓存端口(如果内置于 Compose)。
  • 防火墙:如果宿主机开启了防火墙(如ufwfirewalld),需要放行上述端口。

5. 获取部署文件你需要从 Wukong AICRM 的官方代码仓库获取docker-compose.yml和相关配置文件。通常可以通过 Git 克隆或直接下载压缩包。

4. 安装部署与启动方式

一切准备就绪,现在开始核心的部署步骤。我们将严格按照“Docker 一键安装(推荐)”的路径进行。

步骤 1:获取项目文件首先,从官方仓库获取部署所需的配置文件。这里假设项目托管在 GitCode 或 GitHub。

# 使用 git 克隆仓库(请替换为实际仓库地址) git clone https://gitcode.com/xxx/Wukong-AICRM.git # 或者如果提供了直接下载链接,使用 wget 或 curl 下载 # wget https://xxx.com/Wukong-AICRM-docker.zip && unzip Wukong-AICRM-docker.zip # 进入项目目录 cd Wukong-AICRM # 查看目录结构,确认存在 docker-compose.yml 文件 ls -la

步骤 2:配置环境变量(关键步骤)大多数 Docker Compose 项目会通过.env文件来配置关键参数。你需要创建或修改这个文件。

# 通常项目会提供一个 .env.example 模板文件 cp .env.example .env # 编辑 .env 文件,设置你自己的配置 nano .env # 或使用 vim, cat 等编辑器

.env文件中,你至少需要关注和修改以下配置(具体变量名请以项目实际文件为准):

# 数据库配置 MYSQL_ROOT_PASSWORD=your_strong_password_here MYSQL_DATABASE=wukong_crm MYSQL_USER=wukong_user MYSQL_PASSWORD=another_strong_password # 后端服务密钥(用于加密等) SECRET_KEY=generate_a_long_random_string_here # 服务访问域名/IP和端口(用于前端连接后端) API_BASE_URL=http://your-server-ip:8080 FRONTEND_PORT=3000 BACKEND_PORT=8080 # 邮件服务器配置(用于发送通知) EMAIL_HOST=smtp.your-email-provider.com EMAIL_PORT=587 EMAIL_HOST_USER=your-email@example.com EMAIL_HOST_PASSWORD=your-email-password

务必修改所有默认密码和密钥!使用弱密码或默认密钥是严重的安全风险。

步骤 3:启动所有服务这是最核心的一步。使用 Docker Compose 命令启动定义在docker-compose.yml中的所有服务(如数据库、缓存、后端、前端)。

# 在包含 docker-compose.yml 的目录下执行 # -d 参数表示在后台运行(守护进程模式) docker compose up -d

命令执行后,Docker 会执行以下操作:

  1. 从 Docker Hub 或项目指定的镜像仓库拉取所需的镜像(如mysql:8.0,redis:alpine, 以及项目自定义的wukong-backend,wukong-frontend等)。
  2. 根据docker-compose.yml.env的配置创建网络、卷(Volume)和容器。
  3. 按依赖顺序启动各个容器。

步骤 4:查看启动状态与日志启动命令完成后,需要确认所有服务都正常运行。

# 查看所有容器的运行状态 docker compose ps

你应该看到所有服务的状态(State)都是Up。如果有ExitRestarting,说明启动有问题。

# 查看某个特定服务的日志(例如后端服务叫 `backend`) docker compose logs backend # 查看所有服务的实时日志(类似 tail -f) docker compose logs -f # 如果服务名不确定,可以先查看 docker-compose.yml 中定义的服务名

通过日志,可以排查数据库连接失败、配置文件错误、端口冲突等问题。

步骤 5:访问 Web 管理界面假设前端服务映射到了宿主机的3000端口,你可以在浏览器中访问:

http://你的服务器IP地址:3000

如果是在本地电脑(localhost)上部署,则访问:

http://localhost:3000

首次访问,可能会跳转到初始化或登录页面。通常需要你用.env中设置的管理员账号或默认账号(如admin/admin123,请查阅项目文档)进行登录。

至此,如果能看到登录界面并成功登录,说明 Wukong AICRM 的核心服务已经成功启动并运行。

5. 功能测试与效果验证

部署成功只是第一步,接下来需要验证核心功能是否正常工作。我们按照一个典型的新用户上手流程进行测试。

5.1 系统初始化与登录

  • 测试目的:验证 Web 服务可访问,并能完成初始账户设置或登录。
  • 操作步骤
    1. 打开浏览器,访问http://<你的IP>:3000
    2. 如果首次使用,系统可能会引导你创建管理员账户。输入邮箱、用户名和密码。
    3. 如果已有账户,直接使用账号密码登录。
  • 预期结果:成功进入系统主仪表盘或管理界面。
  • 判断成功:能看到包含菜单栏、数据概览等元素的完整管理界面。
  • 常见失败
    • 页面无法打开:检查docker compose ps确认前端容器是否运行,检查防火墙端口是否开放。
    • 登录失败:确认数据库容器运行正常,检查后端日志是否有认证错误,确认账号密码是否正确(首次登录可尝试查看项目文档的默认账号)。

5.2 客户管理模块测试

这是 CRM 的核心。

  • 测试目的:验证能否添加、查看、编辑和删除客户信息。
  • 操作步骤
    1. 在侧边栏找到“客户”、“联系人”或类似菜单。
    2. 点击“新建客户”,填写基本信息如姓名、公司、电话、邮箱等。
    3. 保存后,在客户列表中应能看到刚创建的客户。
    4. 尝试点击客户进入详情页,编辑部分信息并保存。
    5. 尝试删除一个测试客户(谨慎操作)。
  • 预期结果:所有增删改查操作都能成功,页面无报错,数据能持久化保存。
  • 判断成功:操作后页面刷新,数据变化能立即体现,且重新登录后数据依然存在。
  • 常见失败:操作后页面报错“网络错误”或“服务器内部错误”。需查看浏览器开发者工具(F12)的 Console 和 Network 标签,以及后端容器的日志 (docker compose logs backend),定位是前端请求错误还是后端 API 或数据库错误。

5.3 批量导入客户数据

  • 测试目的:验证系统是否支持 CSV/Excel 文件批量导入,这是评估效率的关键。
  • 操作步骤
    1. 在客户管理界面寻找“批量导入”、“导入客户”或类似按钮。
    2. 下载导入模板(如果有),按照格式准备一个包含 10 条左右测试客户信息的 CSV 文件。
    3. 选择文件并上传。
    4. 系统可能会进行数据映射(匹配 CSV 列与系统字段),确认后开始导入。
  • 预期结果:系统提示导入成功,并显示导入成功/失败的记录数。客户列表中应出现批量导入的客户。
  • 判断成功:导入任务完成,无大量失败记录,数据准确进入系统。
  • 常见失败:文件格式不支持、字段映射错误、数据校验失败(如邮箱格式不对)。需根据系统提示调整文件内容。

5.4 AI 功能探针测试(如果存在)

由于不清楚 Wukong AICRM 具体集成了哪些 AI 功能,这里提供通用测试思路。

  • 测试目的:验证标榜的“AI”能力是否可用,例如智能客服、文本分析等。
  • 操作步骤
    1. 寻找“智能助手”、“AI 分析”、“自动化任务”等相关功能模块。
    2. 智能客服测试:在测试客户对话界面,尝试输入一个问题,看是否能触发自动回复。
    3. 客户意向分析:在客户详情页,看是否有“意向分析”、“情感分析”等标签或按钮,点击后是否能生成分析报告。
    4. 自动生成内容:在写跟进记录或邮件时,寻找“AI 生成”按钮,输入关键词,看是否能生成一段相关的文本。
  • 预期结果:AI 功能能响应并产生有一定相关性的输出。
  • 判断成功:功能可触发,且输出内容不是固定的模板,而是根据输入有所变化。
  • 重要提醒:AI 功能的可用性和质量高度依赖其背后集成的模型服务是否已正确配置和启动。如果 AI 功能完全不可用,需要检查docker-compose.yml中是否包含了 AI 模型服务,并查看对应容器的日志。

6. 接口 API 与批量任务

对于一个旨在集成的 AICRM 系统,其 API 的可用性和批量任务的处理能力是技术评估的重点。

6.1 API 服务发现与测试

通常,后端服务会提供 Swagger UI 或 ReDoc 等 API 文档界面。

  • 操作步骤
    1. 根据配置,尝试访问 API 文档地址,常见的有:
      • http://<你的IP>:8080/api/docs(Swagger)
      • http://<你的IP>:8080/docs(FastAPI)
      • http://<你的IP>:8080/redoc
    2. 如果能打开,这里会列出所有可用的 API 端点(Endpoint),如/api/customers,/api/leads,/api/tasks等,并支持在线测试。
  • 使用 curl 测试一个基础 API(例如获取客户列表):
# 假设后端运行在 8080 端口,且有一个需要认证的 /api/customers 接口 # 首先,你可能需要获取一个访问令牌 (Token) curl -X POST http://localhost:8080/api/auth/login \ -H "Content-Type: application/json" \ -d '{"username":"admin", "password":"your_password"}' # 从返回的 JSON 中提取 token,例如 `{"access_token":"eyJhbGciOiJ...", ...}` # 使用 token 调用客户列表接口 curl -X GET http://localhost:8080/api/customers \ -H "Authorization: Bearer eyJhbGciOiJ..." \ -H "Content-Type: application/json"
  • 使用 Python requests 库测试:
import requests import json # 1. 登录获取 token login_url = "http://localhost:8080/api/auth/login" login_data = {"username": "admin", "password": "your_password"} response = requests.post(login_url, json=login_data) token = response.json().get("access_token") # 2. 使用 token 调用业务 API headers = {"Authorization": f"Bearer {token}", "Content-Type": "application/json"} # 示例:创建一条新的客户记录 create_customer_url = "http://localhost:8080/api/customers" customer_data = { "name": "测试公司API", "contact_person": "张先生", "phone": "13800138000", "email": "api_test@example.com", "status": "lead" # 线索 } create_response = requests.post(create_customer_url, json=customer_data, headers=headers) print(f"创建客户状态码: {create_response.status_code}") print(f"响应内容: {create_response.json()}") # 3. 查询客户列表 list_response = requests.get(create_customer_url, headers=headers) print(f"客户列表: {list_response.json()}")

6.2 批量任务处理

CRM 中的批量任务可能包括:批量导入客户、批量发送邮件/短信、批量更新客户状态、批量分配销售线索等。

  • 通过 API 实现批量操作:即使 Web 界面没有直接的批量功能,你也可以通过编写脚本调用 API 来实现。
import requests import pandas as pd # 假设你有一个 customers_batch.csv 文件 df = pd.read_csv('customers_batch.csv') # 获取认证 token (同上,省略) token = "your_token_here" headers = {"Authorization": f"Bearer {token}"} base_url = "http://localhost:8080/api" success_count = 0 for index, row in df.iterrows(): customer_payload = { "name": row['公司名称'], "contact_person": row['联系人'], "phone": row['电话'], # ... 其他字段映射 } try: resp = requests.post(f"{base_url}/customers", json=customer_payload, headers=headers, timeout=10) if resp.status_code == 201: # 201 Created 通常表示成功 success_count += 1 print(f"成功创建: {row['公司名称']}") else: print(f"失败 {row['公司名称']}: {resp.status_code}, {resp.text}") except Exception as e: print(f"请求异常 {row['公司名称']}: {e}") print(f"批量导入完成,成功 {success_count} 条,失败 {len(df)-success_count} 条")
  • 系统内置批量任务队列:更成熟的系统会有后台任务队列(如 Celery + Redis)。你可以通过 API 提交一个批量任务,然后轮询另一个 API 来获取任务状态和结果。这需要查看具体项目的 API 文档。

7. 资源占用与性能观察

服务运行起来后,需要观察其资源消耗,这对评估服务器选型和容量规划很重要。

1. 查看容器资源占用使用docker stats命令可以实时查看所有运行中容器的资源使用情况。

docker stats

输出示例:

CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS a1b2c3d4e5f6 wukong-aicrm-mysql 0.50% 350MiB / 8GiB 4.28% 1.2kB / 0B 0B / 0B 35 b2c3d4e5f6a1 wukong-aicrm-backend 2.10% 480MiB / 8GiB 5.86% 15.6kB / 9.8kB 0B / 0B 8 c3d4e5f6a1b2 wukong-aicrm-frontend 0.20% 120MiB / 8GiB 1.46% 1.5kB / 0B 0B / 0B 5

重点关注MEM USAGE(内存占用)和CPU %。如果后端服务集成了 AI 模型,其内存和 CPU 占用可能会显著升高,尤其是在处理请求时。

2. 查看宿主机资源概况使用htop,top或系统自带监控工具,查看整体 CPU、内存、磁盘 I/O 和网络状况。确保系统有足够的剩余资源,避免因资源不足导致服务卡顿或崩溃。

3. 性能压力简单测试

  • Web 界面响应:多用户同时点击不同页面,观察页面加载速度。
  • API 响应时间:使用工具(如ab- Apache Bench,wrk)或编写脚本对关键 API(如GET /api/customers)进行并发请求测试。
    # 使用 ab 进行简单压力测试(需先安装) ab -n 100 -c 10 -H "Authorization: Bearer YOUR_TOKEN" http://localhost:8080/api/customers
    观察“Requests per second”(每秒请求数)和“Time per request”(每个请求平均时间)等指标。
  • 批量导入测试:尝试导入一个包含数百条记录的 CSV 文件,观察导入完成所需时间,并监控后端容器的 CPU 和内存变化。

4. 数据库性能如果感觉系统变慢,数据库可能是瓶颈。可以进入数据库容器执行一些简单查询,或使用监控工具。对于 MySQL,可以关注慢查询日志。

# 进入 MySQL 容器 docker exec -it wukong-aicrm-mysql mysql -u root -p # 输入密码后,执行一些监控命令 SHOW PROCESSLIST; -- 查看当前连接和查询 SHOW STATUS LIKE 'Threads_connected'; -- 查看连接数

优化建议:如果资源占用过高,可以考虑:

  • 为数据库容器分配更多内存。
  • 优化后端服务的配置(如工作进程数、线程数)。
  • 如果集成了 AI 模型,考虑是否使用 GPU 加速,或调整模型推理的批处理大小(batch size)。

8. 常见问题与排查方法

部署和运行过程中难免遇到问题。下表汇总了常见问题及其排查思路。

问题现象可能原因排查方式解决方案
执行docker compose up -d失败1. Docker 或 Docker Compose 未安装或版本过低。
2.docker-compose.yml文件语法错误。
3. 网络问题导致镜像拉取失败。
1.docker --versiondocker compose version检查。
2. 运行docker compose config检查语法。
3. 查看命令输出的错误信息,通常会有明确提示。
1. 安装或升级 Docker。
2. 修正 YAML 文件格式。
3. 配置国内镜像加速器,或手动拉取镜像docker pull <image_name>
容器启动后立即退出 (Exited)1. 应用启动失败(如配置文件错误、数据库连接失败)。
2. 端口被占用。
3. 启动命令或入口点脚本有错误。
1.docker compose logs <service_name>查看该容器日志,错误信息通常在最后几行。
2.netstat -tulnp | grep :<port>检查端口占用。
3. 检查.env文件配置是否正确。
1. 根据日志修正配置(如数据库密码、Redis地址)。
2. 修改docker-compose.yml中的端口映射,或停止占用端口的进程。
3. 确保所有必要的环境变量都已设置且格式正确。
Web 页面无法访问 (Connection refused)1. 前端容器未运行。
2. 防火墙/安全组未开放端口。
3. 前端服务内部错误。
1.docker compose ps确认前端服务状态为Up
2. 在宿主机上curl localhost:3000测试容器内服务是否正常。
3. 查看前端容器日志。
1. 重启前端服务docker compose restart frontend
2. 配置防火墙放行端口(如ufw allow 3000)。
3. 根据前端日志修复配置或代码问题。
登录失败或 API 返回 401/4031. 账号密码错误。
2. 数据库未初始化或用户表不存在。
3. Token 过期或无效。
4. CORS(跨域)问题。
1. 确认使用的账号密码,尝试重置。
2. 查看后端日志,检查数据库连接和初始化脚本。
3. 检查 API 请求头中的Authorization是否正确。
4. 查看浏览器控制台 Network 标签的报错。
1. 使用正确凭证或初始化创建账号。
2. 检查数据库容器日志,确认表结构已创建。
3. 重新登录获取新 Token。
4. 在后端配置中正确设置 CORS 允许的前端地址。
上传文件或导入数据失败1. 文件体积超过限制。
2. 存储目录权限不足。
3. 后端处理逻辑出错。
1. 查看后端日志关于文件大小的报错。
2. 检查 Docker 卷映射的宿主机目录权限。
3. 查看具体的业务错误信息。
1. 修改后端配置(如 Nginx 的client_max_body_size,应用层的文件大小限制)。
2. 调整宿主机目录权限chmod -R 755 <volume_path>
3. 根据错误信息修复数据格式或业务逻辑。
系统运行一段时间后变慢1. 数据库连接数过多或未释放。
2. 内存泄漏(尤其 AI 模型服务)。
3. 磁盘空间不足。
4. 未配置缓存或缓存失效。
1. 进入数据库查看连接数SHOW PROCESSLIST;
2. 使用docker stats观察容器内存是否持续增长。
3.df -h检查磁盘使用率。
4. 检查 Redis 等缓存服务是否正常运行。
1. 优化代码中的数据库连接使用,配置连接池。
2. 重启占用内存异常的服务容器。
3. 清理日志、临时文件,或扩容磁盘。
4. 确保缓存服务配置正确并启用。
AI 功能完全不可用1. AI 模型服务未在docker-compose.yml中启动。
2. 模型服务启动失败或依赖缺失。
3. 后端配置中未正确指向 AI 服务地址。
1. 检查docker-compose.yml是否有ai-service或类似定义。
2.docker compose logs ai-service查看模型服务日志。
3. 检查后端服务的环境变量(如AI_API_BASE=http://ai-service:8001)。
1. 如果不需要 AI 功能,可注释掉相关服务。若需要,则确保其配置正确并启动。
2. 根据模型服务日志安装缺失的依赖或下载模型文件。
3. 修正后端配置,确保能访问到 AI 服务。

9. 最佳实践与使用建议

为了让 Wukong AICRM 稳定、安全、高效地运行,遵循一些最佳实践至关重要。

1. 部署与配置

  • 首次部署先测试:不要直接在生产环境部署。先在测试环境(或本地)完整走通安装、初始化、基础功能测试和 API 调用的全流程。
  • 备份配置文件:将修改后的docker-compose.yml.env文件进行备份。它们是重建服务的蓝图。
  • 使用 Docker 卷持久化数据:确保数据库、上传文件等关键数据通过 Docker 卷(Volume)映射到宿主机。这样即使容器删除,数据也不会丢失。定期备份这些卷数据。
  • 分离敏感配置:将密码、密钥等敏感信息放在.env文件中,并确保该文件不被提交到代码仓库(应在.gitignore中忽略)。

2. 安全加固

  • 修改所有默认密码:包括数据库 root 密码、应用管理员密码、Redis 密码(如果设置了)等。
  • 限制网络访问:如果服务不需要对外网开放,仅在内部网络使用,可以通过 Docker 网络或宿主机防火墙限制访问来源 IP。切勿将带默认密码的管理界面直接暴露在公网
  • 定期更新镜像:关注项目更新,定期拉取新版本镜像并重建容器,以获取安全补丁和功能更新。可以使用docker compose pull然后docker compose up -d
  • 启用 HTTPS:如果通过公网访问,务必配置 Nginx 反向代理并申请 SSL 证书,启用 HTTPS 加密通信。

3. 运维与监控

  • 日志集中管理:使用docker compose logs -f可以查看实时日志,但对于生产环境,建议将容器日志收集到 ELK(Elasticsearch, Logstash, Kibana)或 Loki+Grafana 等日志平台,方便检索和分析。
  • 设置资源限制:在docker-compose.yml中为每个服务设置合理的 CPU 和内存限制,防止某个服务异常耗尽宿主机资源。
    services: backend: # ... deploy: # 或者使用 resources 字段,取决于 compose 版本 resources: limits: cpus: '1.0' memory: 2G reservations: memory: 1G
  • 健康检查与自愈:在docker-compose.yml中配置健康检查(healthcheck),并结合重启策略(restart: unless-stopped),使容器在异常时能自动恢复。

4. 数据与合规

  • 客户数据授权:仅导入已获得合法授权使用的客户数据。
  • AI 生成内容审核:对于自动生成的营销话术、邮件回复等内容,建立人工审核机制,避免产生不合规内容。
  • 制定数据清理策略:定期清理过期的日志文件、临时文件和无用的测试数据,避免磁盘被占满。

10. 总结与下一步

Wukong AICRM 通过 Docker 容器化部署,确实大幅降低了本地搭建一个功能相对完整的 AI-CRM 系统的门槛。其核心价值在于将数据库、后端、前端乃至可能的 AI 服务打包成一个可协同工作的整体,通过一份配置文件就能完成部署和扩容。

对于想要尝试的开发者或团队,最应该优先验证的几点是:Docker 环境是否就绪核心的客户管理功能是否流畅批量导入导出是否可用以及API 接口是否稳定。这四点构成了该系统能否融入你现有工作流的基础。最容易踩的坑通常集中在环境变量配置错误、端口冲突、数据库初始化失败以及文件权限问题上,按照本文的排查清单基本能解决。

部署成功后,下一步可以探索的方向包括:

  1. 深度定制:基于源码进行二次开发,添加符合自身业务逻辑的字段、流程或报表。
  2. 集成扩展:利用其 API,将 CRM 数据与内部的 OA 系统、呼叫中心、营销自动化工具(如邮件群发)连接起来,构建更强大的业务中台。
  3. AI 能力强化:如果项目集成的 AI 能力较弱,可以研究将其后端替换或对接更强大的开源 LLM(如 ChatGLM、Qwen)或商业 API,提升智能客服、销售话术生成等场景的效果。
  4. 高可用部署:对于生产环境,可以考虑使用 Docker Swarm 或 Kubernetes 来部署,实现负载均衡和服务高可用。

总的来说,Wukong AICRM 作为一个开源起点,提供了不错的框架和思路。建议在充分测试和评估后,再将其用于核心业务场景。