====== 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 サーバ}}