GoFly LiveChat 是一套用 Go 语言编写的开源在线客服系统(版本 0.3.9),后端采用 Gin 框架 + GORM + MySQL,实时通信通过 Gorilla WebSocket 实现,前端以 Vue 2 + Element UI 多页面模板交付,无需独立的前端构建流程。系统支持多客服账号、访客实时会话、快捷回复、GeoIP 识别、图片/文件上传、IP 黑名单等功能。部署方式直接(二进制 + MySQL),适合希望完全掌控数据的中小团队或个人站点。整体代码结构清晰,但部分功能(如 RBAC 多角色权限)尚处于注释/未完成状态,生产使用前需留意。
视频教程
项目信息
| 项目 | 内容 |
|——|——|
|仓库地址| https://github.com/goflycat/goflylivechat |
|Star 数量| 2.5K|
|协议| Apache-2.0(仓库页面核对) |
|官方文档| 见 README |
适合场景
- 个人网站、博客或小型 SaaS 产品需要接入自托管在线客服的场景
- 对数据隐私敏感、不想将对话数据存放在第三方服务的团队
- 已有 Go 技术栈、希望二次开发或嵌入现有系统的开发者
- 需要嵌入式聊天挂件(chat-widget.js)挂载到任意前端页面
- 预算有限、希望用一台轻量 VPS 跑起来的小团队
- 不适合:需要成熟多角色权限管控(RBAC 未完成)或高并发大规模部署的场景
使用体验
上手:文档简洁,核心流程三步完成(编译 → 上传 → 导入数据表 → 启动项目);代码结构分层清晰(router / controller / models / ws / middleware),Go 开发者读代码几乎无障碍。
日常维护:配置只有一个 config/mysql.json,改动极少;支持 -d`守护进程模式后台运行,日志写入 logs/gofly.log;静态资源可选编译进二进制(embed)方便单文件分发。
文档 / 社区:README 覆盖基本安装步骤,附有前端挂件接入示例;无独立文档站;中文社区资料较少,遇到问题主要靠读源码解决。
踩坑记录
- 访客 10 分钟无消息自动过期
- 现象:访客停留但不发消息,10 分钟后在客服端消失。
- 原因:`common.VisitorExpire = 600`(秒),后台 `ws.CleanVisitorExpire()` 定时清理。
- 解决办法:按需修改 `common/common.go` 中 `VisitorExpire` 值并重新编译。
- 没有总管理后台,每个人都可以注册登录。
部署命令
# 本机编译指令(powershell指令)
cd到源码目录
$env:GOOS="linux"; $env:GOARCH="amd64"; go build -o gochat main.go
复制gochat到Linux部署包文件夹 打包上传到宝塔面板
# 终端运行gochat指令
./gochat server -p 8082 -d
# 配置数据库链接信息
/config/mysql.json
# 宝塔go项目运行指令
server -p 8082
#完整拼接是:/www/wwwroot/你的目录名/gochat server -p 8082
调用客服方法
查看后台即可
默认账号 / 密钥
| 项目 | 值 |
|——|—–|
| 默认用户名 | `agent` |
| 默认密码 | `agent`(MD5 存储,无盐) |
| 管理后台入口| `http://你的域名/login` |





