Ubuntu14.04にRocket.Chatをインストール、構成、およびデプロイする方法
序章
Rocket.Chat は、Meteorで構築されたオープンソースのメッセージングアプリです。 ビデオ会議、ファイル共有、音声メッセージをサポートし、フル機能のAPIなどを備えています。 Rocket.Chatは、コミュニケーションを完全に制御したい人に最適です。
このチュートリアルでは、新しいUbuntuサーバーにRocket.Chatをインストールして構成し、セキュリティを強化してRocket.Chatへのアクセスをはるかに簡単にするためにNginxを介してリバースプロキシを設定します。 完了すると、事実上どこからでもアクセスできるRocket.Chatの機能インスタンスが作成されます。
前提条件
このチュートリアルに従うには、次のものが必要です。
- 推奨される最小1GBのRAMを備えた1台のUbuntu14.04サーバー
- sudo権限を持つroot以外のユーザー( Ubuntu 14.04 を使用した初期サーバーセットアップでは、これをセットアップする方法について説明しています。)
- 完全に登録されたドメイン。 Namecheap で購入するか、Freenomで無料で入手できます。
- ドメイン名がサーバーを指すように構成されていることを確認してください。 ヘルプが必要な場合は、このチュートリアルを確認してください。
- SSL証明書。 自己署名証明書を生成します、[Let’s Encryptから無料の証明書を取得します]( how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-14-04 )、または別のプロバイダーから購入します。
ステップ1—依存関係のインストール
このセクションでは、MongoDBやNodeJSなどのRocket.Chatの依存関係の一部をインストールします。
MongoDBを起動して実行することから始めましょう。 まず、パッケージにアクセスできるようにキーサーバーを追加する必要があります。
- sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
次に、使用するリポジトリを設定する必要があります。
- 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
次に、パッケージリストを更新します。
- sudo apt-get update
これで、先に進んでインストールできます npm
, mongodb-org
, curl
と graphicsmagick
、これはすべてRocket.Chatの依存関係です。
- sudo apt-get install npm mongodb-org curl graphicsmagick
ノードのバージョンを変更できるようにするには、NPMを使用してパッケージをインストールする必要があります。
- sudo npm install -g n
そのパッケージを使用して、ノードのバージョンを次のように変更します 0.10.40
.
- sudo n 0.10.40
次に、Rocket.Chat自体をインストールし、少し設定を行います。
ステップ2—Rocket.Chatをインストールする
まず、Rocket.Chatの最新の安定バージョンをダウンロードします。 curl
.
- curl -L https://rocket.chat/releases/latest/download -o rocket.chat.tgz
ダウンロードしたアーカイブを展開します tar
指図。
- tar zxvf rocket.chat.tgz
これにより、アーカイブ全体が次の名前のディレクトリに展開されます bundle
. 内容を移動してみましょう bundle
覚えやすいものにディレクトリ。
- mv bundle Rocket.Chat
NPMを使用してRocket.Chatをインストールするディレクトリに移動します。
- cd Rocket.Chat/programs/server
Rocket.Chatをインストールします。
- npm install
親に戻ります Rocket.Chat
ディレクトリ。
- cd ../..
Rocket.ChatがURLやポートなどを追跡できるように、いくつかの環境変数を設定する必要があります。
まず、 ROOT_URL
ドメイン名に可変。 これはURLの形式である必要があります。
- export ROOT_URL=https://example.com/
MongoDBのURLを MONGO_URL
変数。
- export MONGO_URL=mongodb://localhost:27017/rocketchat
をセットする PORT
に可変 3000
.
- export PORT=3000
これで、次のコマンドを使用してRocket.Chatを実行できます。
- node main.js
エラーがなければ動作します! ただし、今のところ、Rocket.Chatを使用して停止します CTRL+C
. Rocket.Chatがインストールされたので、リバースプロキシを使用してすべてのトラフィックをプロキシするようにNginxを設定する必要があります。これにより、Rocket.Chatに簡単にアクセスでき、SSL証明書を使用してすべての通信を暗号化できます。
ステップ3—Nginxを使用してリバースプロキシを設定する
まず、Nginxをインストールします。
- sudo apt-get install -y nginx
証明書の秘密鍵をに移動します /etc/nginx/certificate.key
.
- 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
.
許可されていない泥棒がアクセスできないように、キーの権限を変更します。
- sudo chmod 400 /etc/nginx/certificate.key
証明書自体をにコピーします /etc/nginx/certificate.crt
.
- 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のまったく新しい構成を作成するので、デフォルトを削除して少し簡単にすることができます。
- sudo rm /etc/nginx/sites-enabled/default
将来何らかの理由でそのファイルを元に戻す必要がある場合でも、次のURLで入手できます。 /etc/nginx/sites-available/default
新しいを作成します /etc/nginx/sites-enabled/default
と nano
またはお気に入りのテキストエディタ。
- sudo nano /etc/nginx/sites-enabled/default
まず、を追加します upstream
ブロック:
# Upstreams
upstream backend {
server 127.0.0.1:3000;
}
その下に、を作成しましょう server
ブロック。 最初の部分は、この場合、接続をリッスンするポートをNginxに指示します :443
. また、ホスト名が何であるかを知らせます。 交換することを忘れないでください example.com
あなたのドメイン名で。
server {
listen 443;
server_name example.com;
その下で、Rocket.Chatのアクセスログを保存する場所をNginxに指示し、配置したSSL証明書とキーをポイントします。 /etc/nginx/certificate.key
と /etc/nginx/certificate.crt
それぞれ。
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;
}
}
参照用の完全なファイルは次のとおりです。
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を再起動してジョブを終了します。
- sudo service nginx restart
Nginxが実行されているかどうかを確認します。
- 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
フォルダ。
- cd ~/Rocket.Chat
次に、次のコマンドを実行してRocket.Chatを再起動します。
- node main.js
Rocket.Chatは次の場所でライブ配信されるはずです https://example.com
. お気に入りのブラウザでそのアドレスにアクセスすると、これを確認できます。
次のセクションでは、Rocket.Chatを構成して、起動時に次のノードモジュールを使用して自動的に実行するようにします。 forever-service
.
ステップ4—Rocket.Chatをサービスとして構成する
forever-service
Rocket.Chatなどのノードアプリの初期化スクリプトを自動的に生成します。 まず、インストールする必要があります forever
それ自体、 forever-service
に依存します。
- sudo npm install -g forever
次に、インストールします forever-service
.
- sudo npm install -g forever-service
を使用してサービスを作成する forever-service
:
- sudo forever-service install -s main.js -e "ROOT_URL=https://example.com/ MONGO_URL=mongodb://localhost:27017/rocketchat PORT=3000" rocketchat
- The
-s
フラグに続いてmain.js
永遠に伝えます-サービス私たちのスクリプトは名前が付けられていますmain.js
、 いいえapp.js
、これはデフォルトです。 - The
-e
フラグに続いて"ROOT_URL=https://example.com/ MONGO_URL=mongodb://localhost:27017/rocketchat PORT=3000"
私たちの環境変数を永遠のサービスに渡します。 - ついに、
rocketchat
forever-serviceにサービスの名前を指示します。
forever-serviceの構文の詳細については、次を実行してください。 forever-service --help
.
これで、Rocket.Chatを開始できます。 これにより、 rocketchat
によって作成されたサービス forever-service
.
- 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が完全に装備されています。 メンバーを追加したり、チャネルを作成したり、[管理]メニューの[統合]セクションを確認したりすることができます。 楽しむ!