Tinode - 又一个即时聊天平台
source link: https://azhuge233.com/tinode-%e5%8f%88%e4%b8%80%e4%b8%aa%e5%8d%b3%e6%97%b6%e8%81%8a%e5%a4%a9%e5%b9%b3%e5%8f%b0/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
文章目录 显示
Tinode 是与 mumble – 自托管语音/文字聊天室 和 部署私人通讯软件DuckChat 类似的可以自托管的即时通讯平台,在 Android、iOS 和 Web 端提供即时聊天服务
如果有开放注册的使用需求,需要搭建机器开启了 SMTP 端口并且有 SMTP 服务器,或者使用其他 SMTP 服务,确保能够正常发送邮件
提交注册信息后需要立即验证邮箱,如果不验证邮箱,账户则不会激活,但是注册信息在提交表单后就写入了数据库,如果再用相同信息注册会提示注册信息重复
以下搭建过程使用预编译文件,不需要 SMTP 服务,同时 Tinode 也无法开放注册
下文将展示如何在 Debian 10 下无域名搭建 Tinode 服务端
- Debian 10
Tinode 提供三种数据库支持:RethinkDB、MySQL 和 MongoDB,这里选择 MySQL
以下指令均在 root 用户下执行,其他用户酌情添加 sudo
MySQL
Tinode 要求 MySQL 版本必须在 5.7 以上
执行指令安装
wget https://dev.mysql.com/get/mysql-apt-config_0.8.18-1_all.deb dpkg -i mysql-apt-config_0.8.18-1_all.deb apt udpate apt install mysql-server
安装时选择 MySQL 5.7 版本(而不是8.0),记录数据库密码
配置数据库并运行 Tinode
获取并解压预编译包
在 Tinode – Release 获取最新版本链接
mkdir tinode cd tinode wget https://github.com/tinode/chat/releases/download/v0.17.6/tinode-mysql.linux-amd64.tar.gz tar zxvf tinode-mysql.linux-amd64.tar.gz
配置数据库密码
默认情况下 Tinode 以 root 用户和空密码(不使用密码)连接 MySQL,如果安装 MySQL 时配置了密码,则需要在配置文件中手动添加
编辑项目根目录下的 tinode.conf,进入 DataBase Configuration 部分下的 “store_config” – “adapters” – “mysql”,在 “User” 键值对下添加 “Passwd” 键值对
//... "User": "root", "Passwd": "[your mysql password]", // 添加此行 "Net": "tcp", //...
数据库初始化
在项目根目录下执行
./init-db
这里没有选择导入 Tinode 自带的 data.json,如果选择导入 data.json,则可以跳过后续的 新建用户 和 配置用户权限 步骤,直接使用已导入的账户登录
运行 Tinode
在项目根目录下执行
./tinode
Tinode 默认监听 6060 端口(可以在 tinode.conf 中更改端口),浏览器访问 IP:6060 即可开始使用
可以使用 Nginx 等 Web 服务器反代到 80 端口,这里不赘述
如果机器没有 SMTP 服务器,或者机器 SMTP 服务端口没有开放,是无法成功注册 Tinode 的(可以在 tinode.conf 配置文件内填写 SMTP 服务器)
Tinode 本身也没有提供管理员账户,所有管理员操作(例如:增删改用户/消息)都需要使用 tn-cli 完成
tn-cli 是 Tinode 官方编写的 python 管理脚本,需要 python 2.7 和 3.4+,以及 PiP 9.0.1+
获取并解压 tn-cli
cd tinode wget https://github.com/tinode/chat/releases/download/v0.17.6/tn-cli.tar.gz tar zxvf tn-cli.tar.gz
安装 python 依赖
在解压目录执行
pip3 install -r requirements.txt
添加新用户
python3 tn-cli.py # 进入 tn-cli # 以下指令在 tn-cli 中执行 acc --uname [your username] --password [your password] --fn [your friendly name] --cred enamil:[your email]
配置用户权限
使用以上指令新建的用户也需要邮箱验证,在没有 SMTP 的情况下可以直接操作数据库来跳过邮箱验证
此操作相当于将对应用户指定为 Tinode 的 root 用户
进入 MySQL
mysql -u root -p # 输入密码
更新数据库
在 MySQL 控制台执行
UPDATE auth SET authlvl=30 WHERE uname='basic:[username]';
可以对多个用户使用
Tinode 登录界面
登录后界面
发送消息
接收消息
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK