====== 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 を利用する)
==== インストール方法 ====
* 基本的には公式のドキュメントのとおりに進めると良い。
* 参考サイト: [[https://rocket.chat/docs/installation/manual-installation/ubuntu/ | Rocket.Chat Documentation - Rocket.Chat in Ubuntu]]
- 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' であることを確認する。
* 参考サイト: [[https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/ | Install MongoDB Community Edition on Ubuntu — MongoDB Manual]]
- 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
* 参考サイト: [[https://qiita.com/seibe/items/36cef7df85fe2cefa3ea | Ubuntuに最新のNode.jsを難なくインストールする - Qiita]]
- 必要パッケージのインストールをする。\\
$ 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/)
* [[https://qiita.com/nekonoprotocol/items/67c5ff7231da4e15017f | RocketChatを導入する手順 - Qiita]]
* 通常の場合: ''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;
}
:
:
}
* 参考サイト: [[https://rocket.chat/docs/installation/manual-installation/configuring-ssl-reverse-proxy/#running-behind-a-nginx-ssl-reverse-proxy | Rocket.Chat Documentation - Configuring SSL Reverse Proxy]]
- ウェブサーバを再起動させる。\\
$ sudo systemctl restart nginx
- Rocket.Chat を起動させる。\\
$ sudo systemctl enable rocketchat && sudo systemctl start rocketchat
- ブラウザで Rocket.Chat にアクセスする。
* http://example.com/rocketchat/
{{tag>Linux サーバ}}