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 を利用する)

インストール方法

  • 基本的には公式のドキュメントのとおりに進めると良い。
    1. 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
    2. 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
      1. 最後のコマンドで、'“ok” : 1' であることを確認する。
    3. 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
    4. 必要パッケージのインストールをする。
      $ sudo apt install curl
    5. 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
    6. 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
    7. 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
    8. ウェブサーバをインストールする。
      $ sudo apt install nginx
    9. 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;
          }
            :
            :
      }
    10. ウェブサーバを再起動させる。
      $ sudo systemctl restart nginx
    11. Rocket.Chat を起動させる。
      $ sudo systemctl enable rocketchat && sudo systemctl start rocketchat
    12. ブラウザで Rocket.Chat にアクセスする。
  • サーバ関連/rocket.chat.txt
  • 最終更新: 2019/08/02 16:52
  • by mumeiyamibito