什么是 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



