開発者ドキュメント

Ubuntu 14.04にRocket.Chatをインストール、構成、およびデプロイする方法

序章

Rocket.Chat は、Meteorで構築されたオープンソースのメッセージングアプリです。 ビデオ会議、ファイル共有、音声メッセージをサポートし、フル機能のAPIなどを備えています。 Rocket.Chatは、コミュニケーションを完全に制御したい人に最適です。

このチュートリアルでは、新しいUbuntuサーバーにRocket.Chatをインストールして構成し、セキュリティを強化してRocket.Chatへのアクセスをはるかに簡単にするためにNginxを介してリバースプロキシを設定します。 完了すると、事実上どこからでもアクセスできるRocket.Chatの機能インスタンスが作成されます。

前提条件

このチュートリアルに従うには、次のものが必要です。

ステップ1—依存関係のインストール

このセクションでは、MongoDBやNodeJSなどのRocket.Chatの依存関係の一部をインストールします。

MongoDBを起動して実行することから始めましょう。 まず、パッケージにアクセスできるようにキーサーバーを追加する必要があります。

  1. sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

次に、使用するリポジトリを設定する必要があります。

  1. echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

次に、パッケージリストを更新します。

  1. sudo apt-get update

これで、npmmongodb-orgcurlgraphicsmagickをインストールできます。これらはすべてRocket.Chatの依存関係です。

  1. sudo apt-get install npm mongodb-org curl graphicsmagick

ノードのバージョンを変更できるようにするには、NPMを使用してパッケージをインストールする必要があります。

  1. sudo npm install -g n

そのパッケージを使用して、ノードのバージョンを0.10.40に変更します。

  1. sudo n 0.10.40

次に、Rocket.Chat自体をインストールし、少し設定を行います。

ステップ2—Rocket.Chatをインストールする

まず、curlを使用してRocket.Chatの最新の安定バージョンをダウンロードします。

  1. curl -L https://rocket.chat/releases/latest/download -o rocket.chat.tgz

tarコマンドを使用してダウンロードしたアーカイブを展開します。

  1. tar zxvf rocket.chat.tgz

これにより、アーカイブ全体がbundleという名前のディレクトリに展開されます。 bundleディレクトリの内容を覚えやすい場所に移動しましょう。

  1. mv bundle Rocket.Chat

NPMを使用してRocket.Chatをインストールするディレクトリに移動します。

  1. cd Rocket.Chat/programs/server

Rocket.Chatをインストールします。

  1. npm install

親のRocket.Chatディレクトリに戻ります。

  1. cd ../..

Rocket.ChatがURLやポートなどを追跡できるように、いくつかの環境変数を設定する必要があります。

まず、ROOT_URL変数をドメイン名に設定します。 これはURLの形式である必要があります。

  1. export ROOT_URL=https://example.com/

MONGO_URL変数の下にMongoDBのURLを設定します。

  1. export MONGO_URL=mongodb://localhost:27017/rocketchat

PORT変数を3000に設定します。

  1. export PORT=3000

これで、次のコマンドを使用してRocket.Chatを実行できます。

  1. node main.js

エラーがなければ動作します! ただし、今のところ、CTRL+Cを使用してRocket.Chatを停止します。 Rocket.Chatがインストールされたので、リバースプロキシを使用してすべてのトラフィックをプロキシするようにNginxを設定する必要があります。これにより、Rocket.Chatに簡単にアクセスでき、SSL証明書を使用してすべての通信を暗号化できます。

ステップ3—Nginxを使用してリバースプロキシを設定する

まず、Nginxをインストールします。

  1. sudo apt-get install -y nginx

証明書の秘密鍵を/etc/nginx/certificate.keyに移動します。

  1. sudo cp /path/to/your/key /etc/nginx/certificate.key

たとえば、Let’s Encrypt証明書を作成した場合は、sudo cp /etc/letsencrypt/live/your_domain_name/privkey.pem /etc/nginx/certificate.keyを使用します。

許可されていない泥棒がアクセスできないように、キーの権限を変更します。

  1. sudo chmod 400 /etc/nginx/certificate.key

証明書自体を/etc/nginx/certificate.crtにコピーします。

  1. sudo cp /path/to/your/cert /etc/nginx/certificate.crt

Let’s Encrypt証明書を作成した場合、コマンドはsudo cp /etc/letsencrypt/live/your_domain_name/cert.pem /etc/nginx/certificate.crtのようになります。

Rocket.Chatのまったく新しい構成を作成するので、デフォルトを削除して少し簡単にすることができます。

  1. sudo rm /etc/nginx/sites-enabled/default

将来何らかの理由でそのファイルを元に戻す必要がある場合でも、/etc/nginx/sites-available/defaultで引き続き入手できます。

nanoまたはお気に入りのテキストエディタを使用して新しい/etc/nginx/sites-enabled/defaultを作成します。

  1. sudo nano /etc/nginx/sites-enabled/default

まず、upstreamブロックを追加します。

/ etc / nginx / sites-enabled / default
# Upstreams
upstream backend {
    server 127.0.0.1:3000;
}

その下に、serverブロックを作成しましょう。 最初の部分は、接続をリッスンするポート(この場合は:443)をNginxに指示します。 また、ホスト名が何であるかを知らせます。 example.comをドメイン名に置き換えることを忘れないでください。

/ etc / nginx / sites-enabled / default
server {
    listen 443;
    server_name example.com;

その下で、Rocket.Chatのアクセスログを保存する場所をNginxに指示し、/etc/nginx/certificate.key/etc/nginx/certificate.crtにそれぞれ配置したSSL証明書とキーをポイントします。

/ etc / nginx / sites-enabled / default
    error_log /var/log/nginx/rocketchat.access.log;

    ssl on;
    ssl_certificate /etc/nginx/certificate.crt;
    ssl_certificate_key /etc/nginx/certificate.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # don’t use SSLv3 ref: POODLE

そして今、locationブロックで構成を終了します。

    location / {
        proxy_pass http://example.com:3000/;
        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;
    }
}

参照用の完全なファイルは次のとおりです。

/ etc / nginx / sites-enabled / default
server {
    listen 443;
    server_name example.com;
    error_log /var/log/nginx/rocketchat.access.log;

    ssl on;
    ssl_certificate /etc/nginx/certificate.crt;
    ssl_certificate_key /etc/nginx/certificate.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # don’t use SSLv3 ref: POODLE

    location / {
        proxy_pass http://example.com:3000/;
        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;
    }
}

ファイルを保存して終了します。 最後に、Nginxを再起動してジョブを終了します。

  1. sudo service nginx restart

Nginxが実行されているかどうかを確認します。

  1. sudo service nginx status

次のメッセージが表示された場合は、Nginxが稼働しています。

 * nginx is running

エラーメッセージが表示された場合は、/var/log/nginx/rocketchat.access.log/var/log/nginx/access.logのログ、または/var/log/nginx/error.logのエラーログを確認してください。 nginx -tを実行して、ほとんどのエラーが表示されるNginx構成ファイルを確認することもできます。

Rocket.Chatフォルダーにいることを確認してください。

  1. cd ~/Rocket.Chat

次に、次のコマンドを実行してRocket.Chatを再起動します。

  1. node main.js

Rocket.Chatはhttps://example.comでライブになります。 お気に入りのブラウザでそのアドレスにアクセスすると、これを確認できます。

次のセクションでは、forever-serviceというノードモジュールを使用して、起動時に自動的に実行されるようにRocket.Chatを構成します。

ステップ4—Rocket.Chatをサービスとして構成する

forever-serviceは、Rocket.Chatなどのノードアプリの初期化スクリプトを自動的に生成します。 まず、forever-serviceが依存するforever自体をインストールする必要があります。

  1. sudo npm install -g forever

次に、forever-serviceをインストールします。

  1. sudo npm install -g forever-service

forever-serviceを使用してサービスを作成します。

  1. sudo forever-service install -s main.js -e "ROOT_URL=https://example.com/ MONGO_URL=mongodb://localhost:27017/rocketchat PORT=3000" rocketchat

forever-serviceの構文の詳細については、forever-service --helpを実行してください。

これで、Rocket.Chatを開始できます。 これにより、forever-serviceによって作成されたrocketchatサービスが初期化されます。

  1. sudo start rocketchat

Rocket.Chatは、手順2で設定したURLで公開されているはずです。 ここでHTTPSを使用していることを確認してください。

Rocket.Chatの準備ができているはずです。 次のセクションでは、最初の管理者ユーザーをRocket.Chatに追加し、インターフェイスのツアーに参加します。

ステップ5—Rocket.Chatの構成と使用

Rocket.Chatを先に設定したURLにアクセスします。 次のように表示されます。

新しいアカウントの登録をクリックし、最初の管理者のユーザー情報を入力します。

送信をクリックし、新しいユーザーのユーザー名を選択します。

このユーザー名を使用をクリックすると、ホームページに移動します。

それで全部です! 右側に、#generalチャネルがすでに作成されていることがわかります。 それをクリックすると、チャットルームに移動します。 少し遊んでみてください。

それでは、インターフェースのツアーを見てみましょう。 まず、チャンネルの横にある小さなプラスボタンをクリックして、新しいチャンネルを作成しましょう。

好きな名前を付けてください。

保存をクリックすると、新しいチャンネルに移動します。

管理インターフェースにアクセスするには、ユーザー名の横にある小さな矢印をクリックします。 メニューをプルダウンします:

管理をクリックします。 2番目のメニューが表示されます。

このメニューを使用して、Rocket.Chatインストールのあらゆる側面を構成および管理できます。 ユーザーセクションでは、個々のユーザーの権限を管理したり、新しいユーザーを招待したりすることもできます。 Integrations ビューを使用して、インストールに機能を追加することもできます。

結論

おめでとう! これで、あなたとあなたのチームのための独自のチャットソリューションができました。Ubuntu14.04サーバーで実行されているRocket.Chatです。 forever-serviceを使用して起動時に自動的に起動するように設定されており、Nginxリバースプロキシを使用したSSLが完全に装備されています。 メンバーを追加したり、チャネルを作成したり、[管理]メニューの[統合]セクションを確認したりすることができます。 楽しむ!

モバイルバージョンを終了