什么是 Tinode ?
Tinode
是一个免费、无限制且灵活的开源消息传递平台,以移动端为主。采用纯Go
后端(授权 GPL 3.0),客户端采用Java
、Javascript
和Swift
;gRPC
客户端支持C++
、C#
、Go
、Java
、Node
、PHP
、Python
、Ruby
、Objective-C
等(授权Apache 2.0)。
安装
准备
-
在
docker
文件夹中,创建一个新文件夹,并将其命名为tinode
,在tinode
中建 3 个子目录,分别是data
,uploads
,logs
-
这一步是可选项,只有当你想启用外部设置的时候才需要下载
tinode.conf
文件,地址:https://raw.githubusercontent.com/tinode/chat/master/server/tinode.conf,将其放入到tinode
目录,在修改前做好备份,修改时一定要记得用UTF-8
编码格式,记得去掉注释
本质上 tinode.conf
文件是个 json
文件,你可以基于官方的 tinode.conf
修改出一个适合自己的,但是很容易搞出错误,所以没有把握的话建议先不启用外部配置
网络
在 Docker
管理器的 网络
中创建一个新的桥接网络
在没有容器连接的情况下,网络是灰的
数据库
tinode
支持三种数据库:RethinkDB
、MySQL
和 MongoDB
,老苏选了 MySQL
,但这次没有用群晖自带的 MariaDB
,而是用 Docker
新安装
Tinode
要求MySQL
版本必须在 5.7 以上
名称
容器名称
改为 mysql
,进入高级设置
如果不用
mysql
做容器名称,记得要修改tinode
的环境变量MYSQL_DSN
高级设置
勾选 启用自动重新启动
卷
文件夹 | 装载路径 | 说明 |
---|---|---|
docker/tinode/date | /var/lib/mysql | 持久化存放数据 |
网络
点 +
号,在下拉框中找到前面添加的网络 tinode-net
选中 bridge
之后点 -
号,只留下 tinode-net
环境
可变 | 值 |
---|---|
MYSQL_ALLOW_EMPTY_PASSWORD | 设置为 yes |
端口设置
、链接
采用默认,全部设置完后,应用
即可
如果容器运行正常,就可以进行下一步了
Tinode
在注册表中搜索 tinode
,选择第三个 tinode/tinode-mysql
,版本选择 latest
。
当然也可以下载第四个
tinode/tinode
,这个版本同时包含了三种数据库适配器,需要通过STORE_USE_ADAPTER = mysql
环境变量来指定数据库适配器。
卷
文件夹 | 装载路径 | 说明 |
---|---|---|
docker/tinode/tinode.conf | /opt/tinode/tinode.conf | 配置文件 |
docker/tinode/logs | /var/log | 存放日志 |
docker/tinode/uploads | /opt/tinode/uploads | 上传目录 |
- 其中第一项为文件,第二、三项为文件夹;
如果你不启用外部设置,可以只映射文件夹
网络
点 +
号,在下拉框中找到前面添加的网络 tinode-net
选中 bridge
之后点 -
号,只留下 tinode-net
端口
除了 6060
端口 ,其他端口直接用了默认的 自动
本地端口 | 容器端口 |
---|---|
6060 | 6060 |
环境
可变 | 值 |
---|---|
EXT_CONFIG | 按官方文档需设置为 /opt/tinode/tinode.conf |
如果前面启用了外部配置,这里就需要设置 EXT_CONFIG
,否则不需要设置,保持默认即可
如果你的 tinode.conf
配置有问题,日志会一直显示错误,比如下面👇这样:
Database adapter: mysql , version: 111
Failed to init DB adapter: dial tcp 127.0.0.1:3306: connect: connection refused
./init-db failed. Quitting.
需要修改正确,容器才能正常启动
Database adapter: mysql , version: 111
Database exists, DB version is correct. All done.
应用之后,如果不出意外的话容器应该也能正常运转
运行
在浏览器中输入 http://群晖IP:6060
,就看到登录界面
设置服务器地址:
显示不全,端口是默认的
6060
,而不是看到的606
系统内置了一些测试账号
账号 | 密码 |
---|---|
alice | alice123 |
bob | bob123 |
carol | carol123 |
dave | dave123 |
frank | frank123 |
用 alice
登录网页
虽然显示的聊天内容都是英文,其实界面是中文的
看之前的一些文档,要注册新用户需要设置 SMTP
服务器,实际上现在已经不需要
直接搜索 alice
发测试消息
对端收到的消息
Android客户端
适用于 Android
的 Tinode
又名 Tindroid
,可以在这里下载 Released
的版本
https://github.com/tinode/tindroid/releases
iOS客户端
适用于 iOS
的 Tinode
又名 Tinodios
, 应该可以在 App Store
中下载
小结
以上设置(包括数据库没有设置密码等等)都是非生产环境的设置,仅用于快速实现功能的体验
更多关于 docker
方式的安装和参数设置,还请查阅官方文档:https://github.com/tinode/chat/blob/master/docker/README.md
一些常见问题:https://github.com/tinode/chat/blob/master/docs/faq.md
PS:老苏设置过 SMTP
服务器,想用于新用户注册和密码找回,用 88
邮箱做了测试,但没有成功,日志中没有任何错误信息,但是也没有收到邮件,可以确认的是发送和接收邮箱都正常,也没有屏蔽,原因待查!
参考文档
Tinode instant messenger
地址:https://tinode.co/
tinode/chat: Instant messaging platform. Backend in Go. Clients: Swift iOS, Java Android, JS webapp, scriptable command line; chatbots
地址:https://github.com/tinode/chat
chat/README.md at master · tinode/chat
地址:https://github.com/tinode/chat/blob/master/docker/README.md
Tinode chat server and Apache reverse proxy on NixOS
地址:https://jiaxiaodong.com/blog/computing/server/nix/5/
tinode部署,使用_cumt_TTR的专栏-CSDN博客_tinode
地址:https://blog.csdn.net/cumt_TTR/article/details/104300501