CentOS7にRocketchatをインストールしてみた

IT

RocketChatとは

RocketChatとはOSSのチャットツールです。
Slackと同じような使用感で使うことのできるツールなのに、
無料で構築することできるとっても便利なアプリケーションです。

チャットツールは使いたいけど導入費用やセキュリティを懸念する
組織は多いと思いますが、このツールを使えばオンプレミスですぐにチャットを始めることができるので、企業での利用にもオススメです。

環境

今回はお試しということで、
ローカルPCのVirtualBox上のCentOS7にインストールしていきます。

# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

インストール

さくらのナレッジにあるインストール手順を参考にさせていただきました。
しかしながら、初心者であまり慣れていないこともあって、かなり手こずったので個人メモのためにもハマった箇所についても記載していきます。

パッケージ類の準備

Rocketchatを動かすためには、サーバー上に下記のパッケージやライブラリを入れておく必要がある。まずは稼働に必要なものを用意しておく。個別にインストールしていってもいいが、今回はEPELをつかってインストールをしていく。
– MongoDB
– Node.js
– curl
– GraphicsMagic

# rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# yum install --enablerepo=epel mongodb-server nodejs npm curl GraphicsMagick

※注意
RocketchatのバージョンによってはNode.jsのバージョンが古く、起動に失敗するケースもあります。必要に応じてNode.jsのバージョンアップを行ってください。

RocketChatのダウンロード**

公式サイトからRocketChatのダウンロードを行う。
アーカイブファイルを展開後、中身の「bundle」を任意の場所に保管する。
今回は/opt/rocket.chatというディレクトリにしてみる。

# curl -o rocket.chat.tgz -L https://rocket.chat/releases/latest/download
# tar xvzf rocket.chat.tgz
# mkdir /opt
# mv bundle /opt/rocket.chat

外部ライブラリのインストール

# cd /opt/rocket.chat/programs/server/
# npm install

npmについてはこちらを参照

ユーザーアカウントの追加

Rocket.Chatを「rocketchat」というユーザー/グループで実行することにする。まず「rocketchat」ユーザーおよびグループを作成し、Rocket.Chatのディレクトリ内のファイル/ディレクトリの所有者をこのユーザー/グループに変更する。

# useradd -r rocketchat -U
# chown -R rocketchat:rocketchat /opt/rocket.chat

サービスとして実行できるよう設定ファイルを用意する

サービス化しておくことで、その後の起動に役立てる。

# mkdir /etc/rocket.chat
# touch /etc/rocket.chat/rocketchat.env
touch /etc/systemd/system/rocketchat.service
  • rocketchat.envの内容
MONGO_URL=mongodb://localhost:27017/rocketchat
ROOT_URL=http://<ホストのIPアドレス>:3000/
PORT=3000
  • rocketchat.serviceの内容
[Unit]
Description=Rocket.Chat Server
After=network-online.target mongod.target
Requires=network-online.target

[Service]
ExecStart=/usr/bin/node /opt/rocket.chat/main.js
EnvironmentFile=/etc/rocket.chat/rocketchat.env
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocketchat

[Install]
WantedBy=multi-user.target

最後にsystemctlコマンドで設定を反映させ、MongoDBおよびRocket.Chatを起動させる。

サービスの起動

# systemctl daemon-reload
# systemctl start mongod
# systemctl start rocketchat

ファイアウォールの設定変更

# firewall-cmd --add-port 3000/tcp

実際の画面

ハマりがちな箇所

  • ダウンロードに失敗する。ダウンロードサイトを変えてみて実施してみるべし。
  • tarがうまく出来ない。2重でアーカイブされてるとだめ
  • mongodbが全く動かない事件。logを見てジャーナルファイルが原因と判明。confいじり解消
  • rocketchat.serviceが動かないのでいろいろやった
  • nodeが古かったので修正
  • gccライブラリが古いため修正。これが一番きつかった。半日以上はハマった
  • いろいろとパッケージをインストールして対応
  • 起動するも失敗。環境変数とか駆使してなんとかインストール完了!
  • firewallも忘れずに!!!

コメント