最近RocketChat的服务器快挂了,准备搞个新的即时通讯服务。
RocketChat现在多人要收费了,所以我就看中了Tailchat
Tailchat的UI界面和Discord非常相似,这也成为了我想尝试它的点之一
废话不多说,直接进入主题!
先给出Tailchat官网和Tailchat文档的链接
1.你需要一个Linux服务器并且有公网IP,能连接SSH
2.安装服务器的Docker环境
进入SSH,输入
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
3.启动Docker
输入
systemctl start docker
来启动Docker
systemctl status docker
查看Docker是否运行,如返回 Active: active (running) 则代表运行成功
4.使用Docker Compose部署
输入
docker pull moonrailgun/tailchat # 从公共镜像库拉取 tailchat镜像
docker tag moonrailgun/tailchat tailchat # 将下载的镜像改名为tailchat(和源码编译保持一致,如果不改的话会走源码编译流程)
5.启动之前需要下载配置文件以告知 docker-compose
要如何启动镜像 从仓库下载配置文件与配置环境变量:
mkdir tailchat && cd tailchat
wget https://raw.githubusercontent.com/msgbyte/tailchat/master/docker-compose.yml
wget https://raw.githubusercontent.com/msgbyte/tailchat/master/docker-compose.env
PS:如果提示wget未下载,CentOS使用 sudo yum install wget
Ubuntu使用 sudo apt install wget
在启动之前需要修改一下配置
修改 docker-compose.env
文件的配置,以下字段推荐修改:
API_URL
对外可访问的url地址,用于文件服务访问, 可以是域名也可以是ip 如果出现发送图片不能正常显示就是这个变量没有设置
SECRET
服务端加密秘钥,用于生成Token. 默认为 tailchat
完成配置后使用docker-compose
一键启动 Tailchat
应用:
# 确保配置文件(docker-compose.yml和docker-compose.env)在当前目录下
# 执行以下命令一键启动
docker compose up -d
访问: http://<server ip>:11000
即可打开tailchat
注意部分云服务可能需要手动开放防火墙端口。
部署管理后台(可选)
从github
获取最新的管理后台配置:
wget https://raw.githubusercontent.com/msgbyte/tailchat/master/docker/admin.yml
在环境变量 docker-compose.env
中设置管理后台的账号和密码:
ADMIN_USER=tailchatADMIN_PASS=<这里写入独立的后台密码, 不要告知其他人>
然后使用多文件方式启动应用:
docker compose -f docker-compose.yml -f admin.yml up -d
注意先后顺序,因为admin.yml
依赖docker-compose.yml
所以要放在后面
此时访问后台地址后面追加/admin/
即可访问:
https://tailchat.example.com/admin/
注意不要忘记在最后有一个/
备份与恢复
# 备份
docker exec -i <IMAGE_NAME> mongodump -d tailchat --archive > ./backup.archive
# 还原
docker exec -i <IMAGE_NAME> mongorestore -d tailchat --archive < ./backup.archive
其中<IMAGE_NAME>
表示mongodb镜像名,而-d tailchat
表示使用的数据库的名字,默认启动的数据库名为tailchat
, 你可以通过环境变量MONGO_URL
进行修改