绿联 NAS 部署 Chatwoot:自托管在线客服并接入网站聊天组件
前言网站上线以后如果希望用户能够直接咨询最常见的方式就是在页面右下角增加一个在线客服入口。除了使用现成的 SaaS 客服平台也可以把客服后台部署在自己的服务器或 NAS 中再把聊天组件嵌入现有网站。Chatwoot 是一套面向此类场景的开源全渠道客服系统支持网站聊天、邮件工单、客服坐席、会话分配、客户资料和知识库等功能使用自托管社区版Community Edition核心客服系统可以运行在自己维护的基础设施中。本文将在绿联 NAS 上基于 Docker 部署 Chatwoot完成管理员账号与 SMTP 邮件服务配置再通过内网穿透工具建立 HTTPS 公网入口。完成部署后在后台创建 Website 收件箱获取 JavaScript 聊天组件并嵌入网页完成访客咨询与客服后台双向通信的全链路联调测试。1. Chatwoot 简介Chatwoot是一款基于Ruby on Rails Vue.js开发的开源全渠道客服系统旨在实现多渠道客户消息的集中统一管理。核心特性多渠道接入支持网页实时聊天Web Widget、邮件、以及通过 Webhook 对接各大主流社交与通讯平台。团队协作与工单管理支持内部备注Private Notes、坐席分配、会话转接与团队流转。客户画像与数据分析记录访客信息与历史对话提供响应时间与 CSAT 满意度统计报表。多端覆盖提供 Web 端、移动端iOS / Android及 PWA 支持便于多设备协同办公。说明自托管 Community Edition 涵盖了在线客服与多坐席协同等基础能力。Captain AI 等部分高级功能需参照官方最新方案确认。2. 部署 Chatwoot本教程以绿联 NASUGOS 系统为例进行演示其他支持 Docker 和 SSH 连接的 Linux 服务器或 NAS 设备操作步骤基本一致。2.1 开启 SSH 远程登录打开绿联 NAS控制面板点击进入终端机设置勾选开启 SSH 功能并点击应用注建议使用强密码打开本地电脑终端如 Windows PowerShell 或 macOS Terminal连接 NAS# ssh 用户名NAS局域网IPsshsusu192.168.50.99切换至 root 用户sudo-i2.2 执行部署与环境配置在终端中执行部署脚本curl-fsSLhttps://gitee.com/jun-wan/script/raw/master/chatwoot_docker/deploy.sh-o/tmp/chatwoot-deploy.shchmodx /tmp/chatwoot-deploy.sh/tmp/chatwoot-deploy.sh关键参数配置安装目录配置持久化安装路径或直接回车使用默认目录访问端口与地址选择访问方式例如输入 IP 地址或提前准备好的公网域名SMTP 邮件配置配置邮件服务以便发送坐席邀请与密码重置通知。以 163 邮箱为例输入发件人邮箱地址获取邮箱授权码登录 163 邮箱进入设置-POP3/SMTP/IMAP开启 SMTP 服务并新增授权密码复制生成的授权密码返回终端粘贴授权码并回车系统将自动拉取 Docker 镜像并启动容器终端输出访问地址后即表示本地服务启动成功。2.3 初始配置与汉化在浏览器中打开http://192.168.50.99:4000填写管理员账户信息需设置符合复杂度要求的强密码完成初始化并登录设置界面语言为中文进入左侧Settings-Account Settings将 Language 切换为简体中文并保存3. 配置 HTTPS 公网访问Chatwoot 前端组件需通过公网向后台推送实时会话。对于没有公网 IP 的局域网环境可以通过内网穿透技术映射本地端口。3.1 安装 cpolar在 NAS 终端中执行安装命令sudocurlhttps://get.cpolar.sh|sh启动并检查运行状态sudosystemctl status cpolar在浏览器中输入http://192.168.50.99:9200登录 cpolar Web UI 管理界面3.2 配置穿透隧道方案 A随机域名配置用于调试进入隧道管理-隧道列表点击编辑或新建隧道设置协议为HTTP本地端口填入4000地区选择China Top保存更新进入状态-在线隧道列表获取分配的公网 HTTPS 地址并进行访问测试方案 B固定二级子域名配置推荐生产环境为了避免临时域名变动导致网页端客服代码失效建议配置固定域名在 cpolar 控制台预留二级子域名如chatwoot01回到 NAS 本地 cpolar Web UI编辑该隧道将域名类型切换为二级子域名填入预留名称在在线隧道列表中确认公网域名已更新使用 HTTPS 访问固定域名并登录测试4. 将 Chatwoot 接入网站4.1 创建 Website 收件箱进入 Chatwoot 后台点击设置-收件箱-添加收件箱渠道选择网站 (Website)填写网站名称及目标站点的访问域名分配客服代理成员创建完成后系统将生成对应的 JavaScript 嵌入代码确保脚本中的BASE_URL指向 Chatwoot 最终的公网 HTTPS 访问域名script(function(d,t){varBASE_URLhttps://chatwoot01.cpolar.top;vargd.createElement(t),sd.getElementsByTagName(t)[0];g.srcBASE_URL/packs/js/sdk.js;g.asynctrue;s.parentNode.insertBefore(g,s);g.onloadfunction(){window.chatwootSDK.run({websiteToken:3EoaEfw7TkcDimTNEWi9T5t7,baseUrl:BASE_URL})}})(document,script);/script4.2 网页集成与联调测试将 JavaScript SDK 脚本插入目标网页的/body标签前保存刷新网页页面右下角将出现客服聊天气泡小组件双向通信测试访客在前端发送咨询信息客服进入 Chatwoot 后台的会话列表查看并回复前端网页端实时呈现客服回复内容5. 多坐席团队配置进入设置-客服代理- 点击添加客服配置坐席信息名称客服人员姓名或工号。角色可选择客服仅处理分配的会话或管理员全局配置权限。电子邮箱填入成员邮箱。成员将在邮箱中收到激活邀请点击链接设置登录密码将新坐席分配至指定的收件箱渠道即可加入协作总结本文完成了在绿联 NAS 上基于 Docker 自托管 Chatwoot 客服系统的全流程并通过内网穿透工具建立了 HTTPS 公网通道。结合前端 JavaScript SDK完成了从前端聊天组件加载、消息上报、后台坐席分配到实时回复的双向通信验证。在长期生产部署时建议将 Chatwoot 自身的公开访问域名FRONTEND_URL配置为最终使用的公网域名并确保 WebSocket 协议正常支持。如果客服系统涉及敏感业务数据可进一步配置 Chatwoot 的 HMAC 身份签名机制确保访客身份的真实性与数据安全。

相关新闻

SAP MM物料启用批次管理:已使用物料安全切换方案与实操详解

SAP MM物料启用批次管理:已使用物料安全切换方案与实操详解

1. 项目概述:为什么要在物料使用后启用批次管理?在SAP MM模块的日常运维中,我们经常会遇到一个看似棘手的需求:一个物料已经在系统中被广泛使用,产生了大量的采购订单、生产订单、库存和财务凭证,但业务部门…

2026/10/19 16:19:00 阅读更多 →
2012年的MacBook Pro为何还能跑上新版macOS?OpenCore Legacy Patcher免费复活旧Mac指南

2012年的MacBook Pro为何还能跑上新版macOS?OpenCore Legacy Patcher免费复活旧Mac指南

2012年的MacBook Pro为何还能跑上新版macOS?OpenCore Legacy Patcher免费复活旧Mac指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你的手边是…

2026/10/22 19:44:18 阅读更多 →
Spring Cloud 微服务全家桶:第一版的边界与取舍

Spring Cloud 微服务全家桶:第一版的边界与取舍

Spring Cloud 微服务全家桶:第一版的边界与取舍 在构建微服务架构体系时,研发团队常面临“过度设计”或“设计不足”的双重挑战。若在业务发展初期盲目引入 Spring Cloud 体系下的所有组件(如复杂的 Service Mesh、分布式事务框架 Seata、全量…

2026/10/22 2:15:40 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/22 10:18:38 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/22 11:01:53 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/22 9:44:47 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/22 10:42:00 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/22 10:40:08 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/22 10:56:37 阅读更多 →

日新闻

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/22 1:47:45 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/22 21:33:42 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/22 5:12:39 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/22 22:56:44 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/22 22:56:12 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/22 19:06:46 阅读更多 →