静看光阴荏苒
不管不顾不问不说也不念

Riot:开源的IM聊天系统

古天乐都每天坚持写博客,你有什么理由不写?所以,我这不就来写了嘛。。。

其实在开源聊天系统这块,我个人目前只推荐RocketChat。因为这套系统是目前使用最方便,并且功能最丰富的。有关部署的教程可以浏览:

使用RocketChat搭建一个属于自己的IM聊天系统

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、作为一款聊天程序,搜索功能未免太过于鸡肋,搜索用户只能通过搜索这个用户的邮箱才能搜索到,但邮箱并不是注册时的必填项,也就是说如果这个用户没有填写邮箱,那么你无法搜索到这个用户,搜都搜不到还怎么聊天啊。。。我也是醉的一匹。

赞(2)
未经允许不得转载:荒岛 » Riot:开源的IM聊天系统
分享到: 更多 (0)

评论 9

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    lala大佬,请问能给个hostloc论坛的邀请码吗

    小小白6年前 (2018-05-17) Google Chrome 66.0.3359.181 Google Chrome 66.0.3359.181 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • 我的号才中级会员,没有邀请权限。你去淘宝买个吧。

      LALA6年前 (2018-05-19) TheWorld Browser TheWorld Browser Windows 7 x64 Edition Windows 7 x64 Edition回复
  2. #2

    Lala大佬,現在還有哪些ss panel可以用啊?

    路人甲6年前 (2018-05-18) Safari 11.1 Safari 11.1 Mac OS X  10.13.4 Mac OS X 10.13.4回复
  3. #3

    请问riot.im构建windows、mac安装包,要怎么做???要求默认语言为中文

    wilson5年前 (2019-07-31) Google Chrome 75.0.3770.142 Google Chrome 75.0.3770.142 Windows 10 x64 Edition Windows 10 x64 Edition回复
  4. #4

    宝塔面板直接装web端就行吗?

    开锁的4年前 (2020-02-03) Chrome 79.0.3945.73 Chrome 79.0.3945.73 iPhone iOS 12.2 iPhone iOS 12.2回复
    • 这个没有rocketchat好用,建议用这个:https://lala.im/5388.html

      LALA4年前 (2020-02-03) Google Chrome 74.0.3729.169 Google Chrome 74.0.3729.169 Windows 10 x64 Edition Windows 10 x64 Edition回复
  5. #5

    matrix已经更新换代,riot早已变成element。homeserver也有go语言实现的dendrite,bug什么的修了亿堆,了解了解?

    yntzes2年前 (2022-05-18) QQbrowser QQbrowser Android 4.3 Android 4.3回复
    • 了解过了,前段时间还特地搭建过dendrite和element,发现加大群的话,dendrite的性能还是不行,直接吃了20多g的内存。。element倒是比riot好用很多。。

      LALA2年前 (2022-05-22) Google Chrome 86.0.4240.198 Google Chrome 86.0.4240.198 Windows 10 x64 Edition Windows 10 x64 Edition回复

分享创造快乐

广告合作资源投稿