Slack 是一款集聊天群组、大规模工具集成、文件整合、统一搜索等众多功能于一体的团队沟通和协作软件。但是由于网络限制,导致国内用户连接 Slack 服务器的时间过长,经常出现请求超时的情况。
基于此,我们团队找到了一款 Slack 的开源替代品 Rockat.Chat 并将其 server 部署在 ubuntu 系统的服务器下,虽然其没有 Slack 这么强大,但在团队沟通协作和文件共享等方面还是很出色的,并且客户端支持 Web、App。以下是部署步骤:
step1: 安装 Docker:
为了简化过程,我们使用 Docker 部署此应用。
# 安装 curl
$ apt-get update
$ apt-get install curl
# 安装 docker
$ curl -sSL https://get.docker.com/ | sh
# 测试 docker 是否安装成功
$ docker ps
step2: 安装 docker-compose
一个基于 docker 的应用,通常由多个 docker 容器组成,通过 compose 你可以在单一文件中定义并通过简单的命令操作这些容器。
# VERSION_NUM 是 docker-compose 的版本号,可以访问 https://github.com/docker/compose/releases 查看最新的可用版本
$ curl -L https://github.com/docker/compose/releases/download/VERSION_NUM/docker-compose-`uname -s`-`uname -m` > sudo /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose
例如你想下载安装 1.12.0 版本的 compose,应执行以下命名:
$ curl -L https://github.com/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose
# 测试 docker compose 是否安装成功
$ docker-compose --version
解决 error message:
-
-bash: /usr/local/bin/docker-compose: Permission denied
:sudo -i
以root身份登录后执行命令 -
curl: (7) Failed to connect to github-cloud.s3.amazonaws.com port 443: Connection refused
:更换版本号再试,如果仍被 block 的话,请参考其他安装方法
step3: Clone Rocket.Chat
我们使用 Git clone Rocket.Chat 的源码,如果服务器上未安装 Git,可使用以下命令安装:
$ apt-get install git
clone:
$ git clone https://github.com/RocketChat/Rocket.Chat.git
当然,你觉得这样很麻烦的话,可以直接访问其 github地址 下载并上传至服务器。
step4: 启动 Rocket.Chat server
$ cd Rocket.Chat
$ docker-compose up
解决 error message:
-
Unsupported config option for services service: 'rocketchat'
:docker-compose
与 项目不兼容,建议更新docker-compose
然后,你就可以通过 http://server_ip:3000 连接至服务器了。
Tips:
- 如果你不希望通过
3000
端口访问服务器,可以修改项目根目录下的docker-compose.yml
:
# 假如你希望通过 8080 端口访问服务器
rocketchat:
image: rocketchat/rocket.chat:latest
volumes:
- ./uploads:/app/uploads
environment:
- PORT=3000
- ROOT_URL=http://localhost:8080
- MONGO_URL=mongodb://mongo:27017/rocketchat
- MONGO_OPLOG_URL=mongodb://mongo:27017/local
- MAIL_URL=smtp://smtp.email
- HTTP_PROXY=http://proxy.domain.com
- HTTPS_PROXY=http://proxy.domain.com
links:
- mongo:mongo
ports:
- 8080:3000
labels:
- "traefik.backend=rocketchat"
- "traefik.frontend.rule=Host: your.domain.tld"
- 除了直接通过 web 访问,Rocket.Chat 团队还针对不同的系统开发了 App 供大家使用。
- rocket.chat 使用指南