网上各种商用的客服系统很多,也支持很多的自定义,但毕竟不是自家的东西,用起来总归不舒服。直到前几天,我发现一款开源的客服系统,还挺有意思。在长达一周的测试与作者沟通后,我决定用一些这一套客服系统。
那么,少罗嗦,先看东西。
项目预览
项目简介
GO-FLY,一套可独立部署的免费开源客服系统,基于Golang开发,编译后的二进制文件可直接使用无需搭环境,仅依赖MySQL数据库,是一个开箱即用的网页在线客服系统,同时也是首页完全可以编辑的单页营销系统
- 使用gin http框架实现restful风格的API和template包的模板语法进行展示界面
- 使用jwt-go配合gin中间件实现无状态的jwt登陆认证
- 数据库实现的rbac权限配合gin中间件实现权限控制
- 通过cobra进行命令行参数解析和执行对应的功能
- 使用go modoule解决依赖问题
- 使用swagger实现文档展示
- 使用go-imap实现邮件的列表展示和读取
- 使用go-smtp实现发送邮件
- 使用github.com/gorilla/websocket实现即时通讯
- 使用gorm配合mysql实现数据存储
- 前端使用elementUI和Vue展示界面
- 充分实践了struct,interface,map,slice,for range,groutine和channel管道等基础知识
搭建
搭建该套服务需要在VPS或者服务器上,虚拟主机(PHP、ASP)环境的无法搭建使用
1. 创建数据库
# 数据库版本需大于5.5
create database gofly charset utf8;
2. 下载项目文件并修改配置
- 下载项目
# 下载项目
mkdir go-fly
cd go-fly
github: wget https://github.com/taoshihan1991/go-fly/releases/download/0.3.1/go-fly-0.3.1.zip
gitee(国内): wget https://gitee.com/taoshihan/go-fly/attach_files/622210/download/gofly-0.3.2.zip
# 解压加权
unzip gofly-0.2.3.zip
chmod 0777 -R ./
- 修改配置
修改config/mysql.json
文件
{
"Server":"127.0.0.1", # 数据库地址
"Port":"3306", # 数据库端口号
"Database":"gofly", # 数据库名称
"Username":"go-fly", # 数据库用户名
"Password":"go-fly" # 数据库密码
}
3. 运行项目
- 导入数据库
windows: go-fly.exe install
linux: ./go-fly install
导入数据库会清空之前的数据,请保证数据已经不用或者新建数据库
- 运行项目
linux: ./go-fly server [可选 -p 8082 -d]
windows: go-fly.exe server [可选 -p 8082]
- 参数说明
-p 指定端口
-d linux下以daemon守护进程运行(如不使用守护进程则关闭命令行窗口就会停止服务)
-h 查看帮助
- 网页使用
后台地址:http://[服务器IP]:[端口号]
如使用端口号后台,则需要在服务器及对应服务商处开启端口
网页使用:
// 下面js路径和GOFLY_URL 都要改成自己的
<script src="https://gofly.sopans.com/static/js/gofly-front.js"></script>
<script>
GOFLY.init({
GOFLY_URL:"https://gofly.sopans.com",
GOFLY_KEFU_ID: "kefu2", // 客服的用户名
GOFLY_BTN_TEXT: "客服在线 欢迎咨询", // 左下角客服小窗口显示的字
GOFLY_LANG:"cn" // 网页语言
})
</script>
4. 反向代理端口号并开启https
到上面为止,你就可以在后台和前来拜访的说话了,但是如果你所嵌入的网页为https网页,你可能还需要为本服务开启https。
以下教程需要在NGINX上操作
lnmp类似环境
参考下面的配置,修改相关的域名及证书地址为自己的地址
server {
listen 443 ssl http2;
ssl on;
ssl_certificate conf.d/cert/4263285_gofly.sopans.com.pem;
ssl_certificate_key conf.d/cert/4263285_gofly.sopans.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
#listen 80;
server_name gofly.sopans.com;
access_log /var/log/nginx/gofly.sopans.com.access.log main;
location /static {
root /var/www/html/go-fly;//自己的部署路径
}
location / {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
proxy_pass http://127.0.0.1:8081;
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Origin "";
}
}
server{
listen 80;
server_name gofly.sopans.com;
access_log /var/log/nginx/gofly.sopans.com.access.log main;
location /static {
root /var/www/html/go-fly;//自己的部署路径
}
location / {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
proxy_pass http://127.0.0.1:8081;
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Origin "";
}
}
宝塔环境
- 创建一个静态站点,地址为想要访问的域名
- 为该站点配置证书
- 设置反向代理
- 修改反代配置
按照图示,将对应代码加入到配置文件中
#PROXY-START/
location ~* \.(php|jsp|cgi|asp|aspx)$
{
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
proxy_pass http://127.0.0.1:8081;
proxy_http_version 1.1;
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 REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Origin "";
}
location /
{
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
proxy_pass http://127.0.0.1:8081;
proxy_http_version 1.1;
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 REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Origin "";
add_header X-Cache $upstream_cache_status;
#Set Nginx Cache
add_header Cache-Control no-cache;
expires 12h;
}
#PROXY-END/
进行上述操作以后就可以进行https+域名进行访问了。
项目地址
官方网站:开源免费客服系统-极简强大Go语言开发客服单页营销系统 - GOFLY
GitHub:点击跳转到GitHub
项目目前还在开发,不建议直接投入到生产环境中去,官网有提供注册地址,可自行注册体验。
本站有搭建测试环境,可体验一些基础的功能。由于项目更新迭代较快,本站效果不代表最终项目效果。
最后更新 2021-03-02
登录后台要认证
把后台middleware/domain_limit.go中DomainLimitMiddleware方法注释了 就可以正常访问了
作者现在主搞商业化了 后台需要自己修改密码使用
宝塔导入数据库说是成功,但数据库里没有怎么办
可以使用命令行试一下
求助,还是不会搞,可以帮忙远程协助一下吗,给个小红包
那我加你QQ吧,晚上帮你看一下
开源帮我弄一下吗 有偿 1600445187
周末可以帮你搞一下
请问默认的kefu2和kefu3的密码是多少?
之前是用户名和密码一样的,后来我装了新版之后就不对了。你可以询问一下作者,或者直接更改数据库中的密码,新密码是md5格式的密码
8082的后台可以进去了,但是页面上没有哪个客服浮窗,是因为我的网站用的是wordpress的原因吗
和网站没有关系,看一下控制台输出的错误,根据错误信息寻找解决方案
按你叫教程 直接 502 Bad Gateway nginx 报错 打不开。
操作可能不对