Rocket.Chat
概要
- オープンソースソフトウェアのウェブチャットサーバ
- インターフェースは Slack に似ている。
- 自分のサーバで管理できるので、会話やファイルのやり取りを第三者に任せたくない人向け。
導入
前提条件
- OS: Ubuntu (18.04) or LinuxMint 19
- Web サーバ: nginx (1.14.2)
- データベース: MongoDB (4.0.11)
- インストール方法として、ネイティブ環境のパッケージを使う方法と、snap パッケージ (依存関係のパッケージも同梱されたパッケージ) を使う方法の 2 種類があるが、今回はネイティブ環境のパッケージを使う。
- インストール先:
/opt/Rocket.Chat/
- ポート番号: 3100
- アクセス先:
https://your_host.com/rocketchat/
(SSL を利用する)
インストール方法
- 基本的には公式のドキュメントのとおりに進めると良い。
- MongoDB をインストールする。
$ wget -qO - https://www.mongodb.org/static/pgp/server-4.0.asc | sudo apt-key add - $ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list $ sudo apt update $ sudo apt install build-essential mongodb-org nodejs graphicsmagick
- MongoDB の設定をする。
$ sudo sed -i "s/^# engine:/ engine: mmapv1/" /etc/mongod.conf $ sudo sed -i "s/^#replication:/replication:\n replSetName: rs01/" /etc/mongod.conf $ sudo systemctl enable mongod && sudo systemctl start mongod $ sudo systemctl enable mongod && sudo systemctl start mongod
- 最後のコマンドで、'“ok” : 1' であることを確認する。
- nodejs 環境を構築する。
$ sudo apt install nodejs npm $ sudo npm install n -g $ sudo n 8.11.4 $ sudo apt purge -y nodejs npm $ exec $SHELL -l
- 必要パッケージのインストールをする。
$ sudo apt install curl
- Rocket.Chat をインストールする。
$ curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz $ tar -xzf /tmp/rocket.chat.tgz -C /tmp $ cd /tmp/bundle/programs/server && npm install $ sudo mv /tmp/bundle /opt/Rocket.Chat
- Rocket.Chat のための環境設定をする。
$ sudo useradd -M rocketchat && sudo usermod -L rocketchat $ sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat $ cat << EOF |sudo tee -a /lib/systemd/system/rocketchat.service [Unit] Description=The Rocket.Chat server After=network.target remote-fs.target nss-lookup.target nginx.target mongod.target [Service] ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js StandardOutput=syslog StandardError=syslog SyslogIdentifier=rocketchat User=rocketchat Environment=MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01 MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01 ROOT_URL=https://example.com/rocketchat/ PORT=3100 [Install] WantedBy=multi-user.target EOF
- ROOT_URL について
- サブディレクトリに SSL でアクセスさせる場合:
ROOT_URL=https://example.com/rocketchat/
- 参考サイト:
- [Rocket\.Chat Documentation \- Running in a sub folder with Apache](https://rocket.chat/docs/installation/manual-installation/running-in-a-sub-folder/)
- 通常の場合:
ROOT_URL=http://127.0.0.1:3100
- MongoDB を設定する。
$ sudo sed -i "s/^# engine:/ engine: mmapv1/" /etc/mongod.conf $sudo sed -i "s/^#replication:/replication:\n replSetName: rs01/" /etc/mongod.conf $ sudo systemctl enable mongod && sudo systemctl start mongod $ sudo systemctl enable mongod && sudo systemctl start mongod
- ウェブサーバをインストールする。
$ sudo apt install nginx
- SSL 導入込みのウェブサーバの設定をする (エディタで
/etc/nginx/sites-available/default
を編集する)。
: : server { listen 443 ssl; listen [::]:443; server_tokens off; client_max_body_size 200M; ssl on; ssl_certificate /etc/letsencrypt/live/DOMAIN/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/DOMAIN/privkey.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # don't use SSLv3 ref: POODLE ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; : : # RocketChat location /rocketchat { proxy_pass http://127.0.0.1:3100; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; proxy_set_header X-Forward-Proto http; proxy_set_header X-Nginx-Proxy true; proxy_redirect off; } : : }
- ウェブサーバを再起動させる。
$ sudo systemctl restart nginx
- Rocket.Chat を起動させる。
$ sudo systemctl enable rocketchat && sudo systemctl start rocketchat
- ブラウザで Rocket.Chat にアクセスする。