前言
前段时间,我们闲聊,他们想找到一个开源且可以自行部署的在线即时聊天(IM)工具,于是乎我进行了寻找,一共找到两款开源即时聊天工具,分别是vocechat,和鸭信。本次我们就来探索一下如何部署这两个软件吧。
一、准备阶段
1.1 服务器准备
要部署服务肯定要拥有一个服务器。
首先需要一台云服务器,如果又IP的更好,可以通过雨云购买:
雨云优惠注册地址:雨云服务器优惠链接****
优惠码:NDI0NDU2
使用优惠码注册后可以享受优惠
注册完账号后进到雨云控制台,云服务器入口可以在后台的 总览 和 云产品 部分找到:
点击云服务器后点击购买云服务器,服务器选择2核2g就差不多了。带宽和流量根据自己的需求进行选择。
国内用户可选择内地机房,一方面访问速度快,但是需要备案,开始选择系统。
结合实际情况选择,debian、ubuntu、centos都可以,本次我选择的是centos。
预装软件,如果选择duckchat,可以根据部署方式的不同,选择docker和宝塔面板,当然可以全都要。如果选择vocechat那么只要保证有docker环境就可以。
选择后购买付款后,等待服务器初始化完成。
等待创建完成后,也就是创建中变为运行中就完成了,之后点击管理,进入管理界面
下滑获取到ip、远程账号、远程密码,备用。
1.2 远程连接
关于远程连接,本次选择MobaXterm进行连接,下载地址,选择free版即可。
安装完成后打开进入这个界面。
选择左上角,Session进入如下界面。
在第一个输入框输入,Remote host输入服务器远程ip,点击ok后。
login as 你的账号
password 是你的密码,输入过程不显示。
回车后登入成功。
二、安装vocechat
vocechat有两种部署方式,无分别来说一下,第一个方式是docker安装。
2.1 docker安装
2.1.1安装
docker部署方式命令如下:
docker run -d --restart=always \
-p 3009:3000 \
--name vocechat-server \
-v ~/.vocechat-server/data:/home/vocechat-server/data \
privoce/vocechat-server:latest \
--network.frontend_url "https://vocechat.yourdomain.com"
https://vocechat.yourdomain.com 替换成你准备域名,如果没有,可以填成http://服务器IP地址:端口,暂时不重要,后续可以进行调
等待部署完成
接下来就可以进行访问了,通过ip:3009。
1.2配置nginx反代
我选择通过docker安装nginx,并通过80,443端口映射到容器中。首先创建配置文件。
mkdir /etc/nginx/
mkdir /etc/nginx/http.d/
mkdir /var/log/nginx/
nano /etc/nginx/http.d/chat.conf
在这个界面中键入一下内容,对了通过自己在完善一下
server{
listen 80;
server_name 你的域名,如果没有域名,则填写http://ip:端口;
location / {
proxy_pass http://服务器ip:3009; # 此处端口号取决于docker运行的对外端口号
proxy_redirect off;
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_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_max_temp_file_size 0; # 关掉硬盘缓存,增加写速度
# SSE 相关配置
proxy_http_version 1.1;
proxy_set_header Connection '';
}
}
ctrl+x 后按y回车保存,注意这个是nano,可以使用vim或者vi编辑器,vim教程
docker run --name nginx -p 80:80 -p 443:443 -d -v /etc/nginx/http.d/chat.conf:/etc/nginx/http.d/chat.conf -v /var/log/nginx:/var/log/nginx nginx
这样nginx就反向代理了这是http,对于https代理原理是:让 Nginx 监听 443 端口,证书配置在 Nginx,通过 host 转发给 vocechat-server:3009,此时 vocechat 接受的依旧是 http。
2.2 shell安装
通过shell命令安装,命令如下:
curl -sSf https://s.voce.chat/install.sh | sh
中途需要回车两下,第一下可以回车问的是安装路径默认的,第二下是域名,如果有可以输入,也可以之后配置。
安装完成后,界面如下:
可以通过IP:3000访问了
三、鸭信的安装
首先都是要git一下源码的,首先检查一下有没有git
git --version
如果返回 git version 1.8.3.1证明有git,如果不是则需要安装git,具体的安装过程可以自己查找一下,这里不过多说了
git clone https://gitee.com/mirrors/DuckChat.git
cd DuckChat
解压文件并进入目录
unzip 1.1.7.zip
cd mirrors-DuckChat-master/DuckChat
3.1 脚本安装
在进入目录之后,并且选择列出内容,我们就会发现当前目录下有一个脚本,那个脚本就是本次安装的重点,执行以下命令就可以安装了。
bash duckchat.sh
如果出现以下报错,没事,说明的80端口被占,改变以下端口就可以。运行这个命令
如果没有报错就可以直接访问ip
a9eab339bc99a75bbe47e5525dcfcf): Error starting userland proxy: listen tcp4 0.0.0.0:80: bind: address already in use.
运行这个命令
docker run -itd -p 8080:80 -p 2031:2031 -p 2021:2021 --name duckchat -v /DuckChat/mirrors-DuckChat-master/DuckChat:/home/gaga ccr.ccs.tencentyun.com/duckchat/gaga
然后就运行到8080端口,你访问IP:8080端口就可以
3.2 通过宝塔面板安装
回到雨云服务器管理界面
登录
登录完成成之后。进入以下界面
点击站点,点击php项目,点击添加站点
输入以下内容
域名没有可以使用ip代替
回到ssh界面,输入以下命令
cd src
cp -r . 你设置根目录
回到宝塔面板,重新启动服务。
直接访问IP即可完成。
3.3 配置
对于直接通过脚本安装的,确定一下自己是否存在mgsql,如果存在为duckchat可以为duckchat创建相应数据库,如果不存在但是想使用的可以安装一下,如果不想安装的可以放弃使用mysql
现在进行配置,访问对应网站主页,点击同意后,点击下一步
通过宝塔面板安装直接使用mgsq配置
如下
数据库地址:localhost
端口 3306
数据库名称:你设置的
用户名:你设置的
数据库密码:你设置的
用户名:自己设置
密码:自己设置
确认密码:自己设置
对于没有mysql的可以选择sqlite数据库,设置好账户密码就可以le
设置完成后,登陆时使用自己设置的管理账号登录
四、结语
这些服务都是有安装、ios端的,所以可以很方便的在手机上使用。
本次的聊天服务就到此未知,这是我在我做内网穿透时想的东西,之后先回去折腾内网穿透的,当我最近我想试一下搞一个私人网盘。