4

Tinode - 又一个即时聊天平台

 3 years ago
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.
neoserver,ios ssh client
Tinode - 又一个即时聊天平台 - azhuge233's

文章目录 显示

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
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
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",
//...
//...
"User": "root",
"Passwd": "[your mysql password]", // 添加此行
"Net": "tcp",
//...

Tinode - 又一个即时聊天平台

数据库初始化

在项目根目录下执行

./init-db
./init-db

Tinode - 又一个即时聊天平台

这里没有选择导入 Tinode 自带的 data.json,如果选择导入 data.json,则可以跳过后续的 新建用户配置用户权限 步骤,直接使用已导入的账户登录

运行 Tinode

在项目根目录下执行

./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
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
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]
python3 tn-cli.py # 进入 tn-cli
# 以下指令在 tn-cli 中执行
acc --uname [your username] --password [your password] --fn [your friendly name] --cred enamil:[your email]

Tinode - 又一个即时聊天平台

Tinode - 又一个即时聊天平台

配置用户权限

使用以上指令新建的用户也需要邮箱验证,在没有 SMTP 的情况下可以直接操作数据库来跳过邮箱验证

此操作相当于将对应用户指定为 Tinode 的 root 用户

进入 MySQL

mysql -u root -p
# 输入密码
mysql -u root -p
# 输入密码

更新数据库

在 MySQL 控制台执行

UPDATE auth SET authlvl=30 WHERE uname='basic:[username]';
UPDATE auth SET authlvl=30 WHERE uname='basic:[username]';

可以对多个用户使用

Tinode - 又一个即时聊天平台

Tinode - 又一个即时聊天平台Tinode 登录界面

Tinode - 又一个即时聊天平台登录后界面

Tinode - 又一个即时聊天平台发送消息

Tinode - 又一个即时聊天平台接收消息


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK