安装类似Slack的可自定义的开源聊天应用Rocket.Chat
(续写)2016年8月22日
看起来在 atmarkIT 上有连载。
首先
环境和版本信息
$ uname -a
Linux solydxk 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt9-3~deb8u1 (2015-04-24) x86_64 GNU/Linux
$ uname -a
Linux solydxk 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt9-3~deb8u1 (2015-04-24) x86_64 GNU/Linux
$ docker -v
Docker版本1.6.2,构建7c8fca2。
$ docker images
仓库 标签 镜像ID 创建时间 虚拟大小
rocketchat/rocket.chat 最新版本 0cae0d783df5 2天前 422.1 MB
Rocket.Chat 是什么?
这是一个由Meteor制作的聊天应用程序。由于BYOS的原因,您需要自己安装并启动它。
Rocket.Chat可能成为在内部网络中构建的一种选择,当你想要使用Slack、HipChat或ChatWork但因无法回避的情况下时,它几乎具有类似于Slack的用户界面。
以下是从README中摘录的内容。
特点 (tè
Current
-
- BYOS (bring your own server)
-
- Multiple Rooms
-
- Direct Messages
-
- Private Groups
-
- Public Channels
-
- Desktop Notifications
-
- Mentions
-
- Avatars
-
- Markdown
-
- Emojis
-
- Transcripts / History
-
- I18n – Internationalization with Lingohub
-
- Hubot Friendly – Hubot Integration Project
-
- Media Embeds
-
- Link Previews
-
- LDAP Authentication – LDAP Authentication on Rocket.Chat Wiki
- Face to Face Video Conferencing aka WebRTC signalling (Alpha)
かなり気合入っていますね。
Alphaとはいえ、ビデオチャットまでやろうとしているのですから。
LDAPと連携できるのも、イントラネットとしては地味にポイントが高いかもしれません。
在其他的OSS中,有一款可以BYOS的聊天应用程序(截至7/12 0:40时)。
根据我的搜索结果,似乎有几个类似的开源软件,其中特别是“Let’s Chat”被提及较多。
因为我都没有使用过这些软件,所以无法进行适当的比较…
考虑到信息的丰富程度,选择”Let’s Chat”可能是最安全的选择吧。
虽然Rocket.Chat是最近才出现的,但已经超过2500个星标了。
虽然星标并不是全部,但可以感受到它的势头。
我想先尝试一下这个势头,所以我安装了Rocket.Chat。
使用Docker
在 README 中写着 “docker pull rocketchat/rocket.chat”,但是光这样运行 “docker run rocketchat/rocket.chat” 是不能使 Rocket.Chat 正常运行的。
yasuhiroki@solydxk ~ $ docker run rocketchat/rocket.chat
=> Starting meteor app on port:80
/built_app/programs/server/node_modules/fibers/future.js:245
throw(ex);
^
Error: MONGO_URL must be set in environment
at Object.<anonymous> (packages/mongo/remote_collection_driver.js:36:1)
at Object.defaultRemoteCollectionDriver (packages/underscore/underscore.js:750:1)
at new Mongo.Collection (packages/mongo/collection.js:98:1)
at packages/accounts-base/accounts_common.js:141:1
at /built_app/programs/server/packages/accounts-base.js:243:4
at /built_app/programs/server/packages/accounts-base.js:1659:3
at /built_app/programs/server/boot.js:222:10
at Array.forEach (native)
at Function._.each._.forEach (/built_app/programs/server/node_modules/underscore/underscore.js:79:11)
at /built_app/programs/server/boot.js:117:5
根据所见,需要MongoDB的URL。既然这样,我们也可以使用Docker创建MongoDB服务器。
yasuhiroki@solydxk ~ $ docker pull mongo
yasuhiroki@solydxk ~ $ docker run -v ~/rocketchat-mongodb:/data/db --name rocketchat-db mongo
-v ~/rocketchat-mongodb:/data/db で、MongoDBのデータの永続化を図っています。~/rocketchat-mongodb が無ければ自動的に作られます。
詳しくはDockerのDocumentsをご覧ください。
https://docs.docker.com/userguide/dockervolumes/
–name rocketchat-db で名前をつけているのは、次に、Dockerコンテナのリンク機能を使うためです。
现在就让我们启动Rocket.Chat吧。
yasuhiroki@solydxk ~ $ docker pull rocketchat/rocket.chat
yasuhiroki@solydxk ~ $ docker run --name rocketchat --link rocketchat-db:rocketchat -e MONGO_URL=mongodb://rocketchat-db:27017 -e ROOT_URL=http://localhost -p 55555:80 rocketchat/rocket.chat
— 我们将link rocketchat-db:rocketchat到之前创建的MongoDB容器。
关于容器之间的链接,请查看Docker的文档。
https://docs.docker.com/userguide/dockerlinks/
通过链接,您可以使用 -e MONGO_URL=mongodb://rocketchat-db:27017 来指定MongoDB容器的名称。
-p 55555:80 で、Port Forwardingの設定をしています。この設定により、localhost:55555で、Rocket.Chatにアクセスできるようになります。
代わりに、 -P や -p 80 としてやってもPort Forwardingの設定はできます。Dockerが適当なPortを割り当ててくれます。私の環境では、32770 でした。(つまり、-p 32770:80と同じ)。
詳細はDockerのDocumentsをご覧ください。
https://docs.docker.com/userguide/usingdocker/#running-a-web-application-in-docker
另外,在代理环境下可能需要-e “http_proxy=” -e “https_proxy=”。
访问
只需访问一下之后就好了。
提前说好,有时可能会很慢。
当一切都无法解决时,通常关闭并重新打开浏览器可以改善…。
顶部

注册
账号注册

在这里注册的电子邮件地址将在以后用于在Gravatar上获取头像图片时使用。
用户名称注册

在这里,有时会发生非常慢的转到下一个画面。
也许是因为代理设置没有在容器中生效,导致超时。
在启动 Rocket.Chat 时,请考虑添加 -e “http_proxy=” -e “https_proxy=”。
选择头像

注册完成

如果没有问题,转到顶部画面就可以了。
最后\最终\最后的时刻
这里提供了一个原生中文的重新表述:
将Docker用于安装并注册账号的步骤已经整理好了。
当然,如果您愿意,您可以自己安装meteor并准备MongoDB,然后进行构建,应用也应该能够正常运行。
然而,作为一个对nodejs和meteor并不太熟悉的人来说,只需要让应用能够运行起来的话,使用Docker会更加方便,不需要过多担心详细的配置。
顺便提一句,对于Meteor命令来说,
curl https://install.meteor.com/ | sh # Install Meteor
git clone https://github.com/RocketChat/Rocket.Chat.git
cd Rocket.Chat
meteor
如果您希望自己能够充分管理设置,我觉得选择这个更好。
暂时已经启动了,我会找到机会试用一下。
闲话不提
顺便提一下,Rocket.Chat的Dockerfile在这里:
https://github.com/RocketChat/Deploy.to.Cloud/blob/master/OfficialImage/Dockerfile
无法直接从DockerHub查找到,有点困扰…