搬瓦工搭建 Chatwoot 客服系统完整教程
Chatwoot 是一款功能强大的开源客服系统,可以作为 Intercom 或 Zendesk 的自托管替代品。它支持网站在线聊天 Widget、邮件、社交媒体等多渠道接入,提供工单管理、自动回复、团队协作和客户分析等企业级功能。本文将介绍如何在搬瓦工 VPS 上通过 Docker 部署 Chatwoot。
一、准备工作
1.1 系统要求
- 操作系统:Ubuntu 20.04+(推荐 Ubuntu 22.04)。
- 内存:至少 2GB,推荐 4GB。
- 磁盘空间:至少 10GB。
- 域名:需要准备域名。
- Docker:需提前安装,参考 Docker 安装教程。
1.2 创建目录
mkdir -p /opt/chatwoot
cd /opt/chatwoot
二、Docker Compose 部署
2.1 下载官方 Docker 配置
wget https://raw.githubusercontent.com/chatwoot/chatwoot/develop/.env.example -O .env
wget https://raw.githubusercontent.com/chatwoot/chatwoot/develop/docker-compose.production.yaml -O docker-compose.yml
2.2 编辑环境变量
编辑 .env 文件,修改以下关键配置:
# 生成密钥
SECRET_KEY_BASE=$(docker run --rm chatwoot/chatwoot:latest bundle exec rake secret)
# 修改 .env 文件
FRONTEND_URL=https://support.example.com
SECRET_KEY_BASE=生成的密钥
# 数据库配置
POSTGRES_HOST=postgres
POSTGRES_USERNAME=postgres
POSTGRES_PASSWORD=your_db_password
POSTGRES_DATABASE=chatwoot_production
# Redis 配置
REDIS_URL=redis://redis:6379
# SMTP 配置
MAILER_SENDER_EMAIL=noreply@example.com
SMTP_ADDRESS=smtp.example.com
SMTP_PORT=587
SMTP_USERNAME=noreply@example.com
SMTP_PASSWORD=smtp_password
SMTP_AUTHENTICATION=login
SMTP_ENABLE_STARTTLS_AUTO=true
2.3 初始化数据库
docker compose run --rm rails bundle exec rails db:chatwoot_prepare
2.4 启动服务
docker compose up -d
三、Nginx 反向代理
server {
listen 443 ssl http2;
server_name support.example.com;
ssl_certificate /etc/letsencrypt/live/support.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/support.example.com/privkey.pem;
client_max_body_size 50M;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
四、初始配置
4.1 创建管理员账户
浏览器访问 https://support.example.com,点击注册创建第一个账户,该账户将自动成为超级管理员。
4.2 添加收件箱(渠道)
登录后进入「设置」→「收件箱」,添加沟通渠道:
- 网站聊天:生成 JavaScript Widget 代码,嵌入到你的网站。
- 邮件:配置转发邮件地址,将客户邮件转入 Chatwoot。
- API:通过 API 接入自定义渠道。
4.3 嵌入网站 Widget
创建网站聊天收件箱后,系统会生成一段 JavaScript 代码。将该代码添加到你的网站 HTML 的 <body> 标签前:
<script>
(function(d,t) {
var BASE_URL="https://support.example.com";
var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
g.src=BASE_URL+"/packs/js/sdk.js";
g.defer = true;
g.async = true;
s.parentNode.insertBefore(g,s);
g.onload=function(){
window.chatwootSDK.run({
websiteToken: 'YOUR_WEBSITE_TOKEN',
baseUrl: BASE_URL
})
}
})(document,"script");
</script>
五、核心功能
5.1 对话管理
所有渠道的客户消息都会汇聚到统一的收件箱中。客服人员可以回复消息、添加内部备注、分配对话给其他成员或标记状态(已解决/待处理/延后)。
5.2 自动化
在「设置」→「自动化」中创建自动化规则,实现消息自动分配、自动标签和自动回复等功能。例如根据消息内容关键词自动分配到对应的客服团队。
5.3 预设回复
在「设置」→「预设回复」中创建常用回复模板,客服人员可以快速使用。在回复框中输入 / 即可搜索和插入预设回复。
5.4 客户信息
Chatwoot 会自动记录客户的联系信息、对话历史和行为数据。客服在回复时可以查看客户的完整历史记录,提供更有针对性的服务。
六、团队管理
- 坐席管理:在「设置」→「坐席」中添加和管理客服人员。
- 团队:将坐席分成不同团队(如技术支持、销售咨询)。
- 标签:使用标签分类和过滤对话。
- 报表:查看对话量、响应时间、解决率等统计数据。
七、维护与更新
7.1 更新 Chatwoot
cd /opt/chatwoot
docker compose pull
docker compose run --rm rails bundle exec rails db:chatwoot_prepare
docker compose up -d
7.2 备份数据
# 备份数据库
docker exec chatwoot-postgres pg_dump -U postgres chatwoot_production > chatwoot-db.sql
7.3 查看日志
docker compose logs --tail=100 rails
docker compose logs --tail=100 sidekiq
总结
Chatwoot 是搭建自托管客服系统的优秀选择,多渠道接入和强大的自动化能力让客户服务变得高效有序。在搬瓦工 VPS 上部署后,你可以为网站提供专业的在线客服体验。选购搬瓦工 VPS 请参考 全部方案,建议选择至少 2GB 内存的方案。购买时使用优惠码 NODESEEK2026 可享受 6.77% 的循环折扣。如遇问题,可前往 搬瓦工官网 提交工单。