古天乐都每天坚持写博客,你有什么理由不写?所以,我这不就来写了嘛。。。
其实在开源聊天系统这块,我个人目前只推荐RocketChat。因为这套系统是目前使用最方便,并且功能最丰富的。有关部署的教程可以浏览:
Riot和RocketChat最大的区别就在于,Riot提供免费的公共聊天服务器,而RocketChat只提供收费服务器托管(有免费试用)。
Riot和RocketChat一样,都可以自行部署服务器端。也就是说如果你不想用官方给你提供的现成服务器,那么你可以自己部署服务器端在任何一台VPS上。
如果你不自行部署Riot的服务器端,那么可以说Riot是开箱即用的。我们作为用户而言,目前有三种可以使用Riot的方案:
1、直接访问https://riot.im/app/#/register注册一个账号,登录即可开始聊天。
2、仅部署前端的WEB端。目的是可以自己DIY一下登录界面什么的,但依旧使用riot.im的公共服务器。
3、部署WEB端的同时还部署服务器端。最麻烦,但所有的资源都是独享的。
我个人建议部署一个WEB端就行了,自建的服务器不好管理,数据备份也是个问题。当然,毕竟折腾就在于享受过程,我这篇文章会把部署服务器端的过程详细写一遍。
系统使用CentOS7X64
首先安装开发工具包:
yum -y groupinstall "Development Tools"
安装程序所需依赖:
yum -y install libtiff-devel libjpeg-devel libzip-devel freetype-devel lcms2-devel libwebp-devel tcl-devel tk-devel redhat-rpm-config python-virtualenv libffi-devel openssl-devel
安装pip:
easy_install pip
创建虚拟运行环境:
virtualenv ~/.synapse
激活运行环境:
source ~/.synapse/bin/activate
升级pip到最新版本:
pip install --upgrade pip
升级setuptools:
pip install --upgrade setuptools
使用pip安装Matrix:
pip install https://github.com/matrix-org/synapse/tarball/master
确认安装成功是类似如下图的回显,如果有错误就要根据自己的错误信息来排查解决了:
现在进入到程序目录
cd ~/.synapse
执行如下命令创建一个配置文件:
python -m synapse.app.homeserver --server-name biubiubiu --config-path homeserver.yaml --generate-config --report-stats no
注:–server-name这里最好填写一个你的站点域名,如果是测试的话,填写你的系统主机名即可。
运行Matrix:
synctl start
因为是初次运行,我们需要创建一个管理员账号,执行:
register_new_matrix_user -c homeserver.yaml http://localhost:8008
如图所示:
编辑homeserver.yaml
vi homeserver.yaml
开启用户注册:
enable_registration: True
如图所示:
然后重启Matrix:
synctl restart
现在服务已经成功跑在机器的本地了,要对外网提供访问,必然要配置一个反向代理。这里我使用Nginx。
新建一个repo:
vi /etc/yum.repos.d/nginx.repo
写入:
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1
执行:
yum -y install nginx
设置Nginx开机启动并运行Nginx:
systemctl enable nginx systemctl start nginx
新建一个站点conf:
vi /etc/nginx/conf.d/riot.conf
写入:
server { listen 80; server_name 你的站点域名; location / { proxy_pass http://localhost:8008; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
重启Nginx:
systemctl restart nginx
这样,我们就部署好了一台Riot的聊天服务器。其实现在已经有一个简陋的WEBUI可以提供最基础的聊天功能了,此时,你访问你的网站域名可以看到如下图的页面。但这个WEBUI太简陋了,很显然不适合让用户去使用:
所以Riot为Matrix专门开发了一套全新的WEBUI。现在,我们就来部署这个全新的WEB端。(不部署后端服务器,就直接看这里)
下载WEB端源码:
wget https://github.com/vector-im/riot-web/releases/download/v0.15.0-rc.4/riot-v0.15.0-rc.4.tar.gz -O /usr/share/nginx/riot-v0.15.0-rc.4.tar.gz
进入到Nginx的站点目录内:
cd /usr/share/nginx/
解压压缩包:
tar -xzvf riot-v0.15.0-rc.4.tar.gz
重命名目录:
mv riot-v0.15.0-rc.4 riot
将目录的所有者改为nginx:
chown -R nginx:nginx riot
新建一个站点conf:
vi /etc/nginx/conf.d/riot-web.conf
写入:
server { listen 80; server_name 你的站点域名; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/riot; index index.html index.htm; } }
重启Nginx:
systemctl restart nginx
关闭防火墙:
systemctl stop firewalld.service
这样,我们就完成了WEB端和服务器端的部署。下面简要说一下使用方法。
首先,这个全新的WEBUI长这样,是不是比之前的那个要好看多了:
点击左上角的注册按钮可以注册新账号,但注册的时候要选择我们自建的服务器地址,如下图红框标注的地方,就是你们要更改的:
同理,登录的时候也是要这样选择的。另外值得一提的是,这个WEBUI支持多国语言,包括中文在内,在登录页面可以自行选择:
我们测试一下是否能够正常进行聊天:
OK,完全正常。那么这套聊天程序就可以说是部署完成了~
写在最后:
关于这套系统的升级,可参考:https://github.com/matrix-org/synapse/blob/master/UPGRADE.rst
其他系统的安装方法,可参考:https://github.com/matrix-org/synapse#platform-specific-instructions
反正我个人不推荐自建这套系统的服务器端,原因有三:
1、管理数据、备份数据麻烦,程序感觉写的乱七八糟的,依赖这个又依赖那个,不太适合生产环境。
2、这套程序在账号权限控制这方面做的很不好,比如说管理员账号,连一个后台管理的界面都没有。更别提能管理其他的用户了。
3、作为一款聊天程序,搜索功能未免太过于鸡肋,搜索用户只能通过搜索这个用户的邮箱才能搜索到,但邮箱并不是注册时的必填项,也就是说如果这个用户没有填写邮箱,那么你无法搜索到这个用户,搜都搜不到还怎么聊天啊。。。我也是醉的一匹。
lala大佬,请问能给个hostloc论坛的邀请码吗
我的号才中级会员,没有邀请权限。你去淘宝买个吧。
Lala大佬,現在還有哪些ss panel可以用啊?
请问riot.im构建windows、mac安装包,要怎么做???要求默认语言为中文
宝塔面板直接装web端就行吗?
这个没有rocketchat好用,建议用这个:https://lala.im/5388.html
matrix已经更新换代,riot早已变成element。homeserver也有go语言实现的dendrite,bug什么的修了亿堆,了解了解?
了解过了,前段时间还特地搭建过dendrite和element,发现加大群的话,dendrite的性能还是不行,直接吃了20多g的内存。。element倒是比riot好用很多。。