LoginSignup
3
1

More than 3 years have passed since last update.

Windowsで(VMの中に)RocketChatを立てたい

Last updated at Posted at 2019-08-03

WindowsでRocketChatを立てたい

お仕事の都合、サクッとチャット環境を構築することになったときのbash_historyを綺麗にしたやつです。

次使う誰かのために。

公式の手順があります。

CentOSが立った後は、以下の公式の手順も使えると思います。(この記事を書いてるときに見つけた…)
https://github.com/RocketChat/docs/tree/master/installation/manual-installation/centos

前提環境

  • OS(物理PC): Windows10
  • VirtualBox: 5.2.6
  • Vagrant: 2.0.2

完成する環境

  • CentOS(VM): 7.6 (実際に構築したときのversion。)
  • RocketChat: 1.2.1 (実際に構築したときのversion。記事執筆時点では1.3.0がある模様)

(以下RocketChatのために一緒に構築する環境)

  • MongoDB: 3.6
  • Node.js: 8.11.4

※この2つは"特に"特定のバージョンであることが必要です。
(ちょっとずれても大丈夫だろーと思って進めるとしっかりエラーが出て時間を無駄にしました。。)
インストールするRocketChatのversionと、必要な上記のversionをしっかり確認してください。

手順

注意事項

基本的にコマンドの部分を全てコピペすればOKです。
2点だけ書き換え・確認してください。
* ***TODO_CHANGE_HOST_NAME*** (RocketChatを公開したいURLに書き換えてください。 ※必須)
* RocketChat・Node.js・MongoDBのバージョン

まずはVMを立てる

Windowsでの作業です。Virtualbox, Vagrantはインストール済みの前提です。
Vagrantfile を作成して、 vagrant up しましょう。

Vagrantfile
Vagrant.configure("2") do |config|
# Proxy
  config.proxy.http     = "http://proxy:port"
  config.proxy.https    = "http://proxy:port"
  config.proxy.no_proxy = "localhost,127.0.0.1"
# OS
  config.vm.box = "centos/7"
  config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
  config.vm.network "private_network", ip: "192.168.250.250"
  config.ssh.insert_key = false
# Port forwarding
  config.vm.network "forwarded_port", guest: 3000, host: 3000
# Spec
  config.vm.provider "virtualbox" do |vb|
    vb.memory = "2048"
    vb.cpus = "1"
  end
# Username
  config.ssh.username = "vagrant"
end

※MacOSXではこのVagrantfileではインターネットに出れませんでした。。(別記事リンク)

VMで作業

VMに入ります。( vagrant ssh )

RocketChatに必要なもろもろのインストール

下記コマンドは、 MongoDB:3.6 , Node.js:8.11.4 のインストールコマンドです。別versionをインストールする場合は注意してください。

echo -e "[mongodb-org-3.6]\nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/3.6/x86_64/\ngpgcheck=1\nenabled=1\ngpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc" | sudo tee /etc/yum.repos.d/mongodb-org-3.6.repo
sudo yum -y install epel-release
sudo yum -y update
sudo yum install -y nodejs curl GraphicsMagick npm mongodb-org-server mongodb-org gcc-c++
sudo npm install -g inherits n
sudo n 8.11.4

RocketChatのインストール

RocketChatを /opt/Rocket.Chat/ 配下にインストールします。

下記コマンドは、 RocketChat:1.2.1 のインストールコマンドです。以下同文。

cd /opt
sudo curl -L https://releases.rocket.chat/1.2.1/download -o rocket.chat.tgz
sudo tar zxvf rocket.chat.tgz
sudo mv bundle Rocket.Chat
cd Rocket.Chat/programs/server
sudo npm install

もう少し

まだ起動できません。ここを飛ばして起動しようとすると
Error: /lib64/libstdc++.so.6: version 'GLIBCXX_3.4.20' not found (required by /opt/Rocket.Chat/programs/server/node_modules/fibers/bin/linux-x64-57/fibers.node) とか OPLOG / REPLICASET IS REQUIRED TO RUN ROCKET.CHAT, MORE ... とか出てくると思います。

sudo npm install -g node-gyp
cd /opt/Rocket.Chat/programs/server/node_modules/fibers/
sudo node-gyp rebuild --target=v8.11.4
sudo cp bin/linux-x64-57/fibers.node{,_bk} #念の為ファイルをバックアップ
sudo cp -f build/Release/fibers.node bin/linux-x64-57/fibers.node #上書き

echo -e "replication:\n  replSetName: \"rs01\"" | sudo tee -a /etc/mongod.conf

起動確認

その前にRocketChatをサービス化します。
他PCからアクセスする際のURL(Windows(物理PC)のIP等)を事前に確認して、以下のコマンドの ***TODO_CHANGE_HOST_NAME*** の部分を置き換えて実行してください。

echo -e "[Unit]\nDescription=The Rocket.Chat server\nAfter=network.target remote-fs.target nss-lookup.target nginx.target mongod.target\n[Service]\nExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js\nStandardOutput=syslog\nStandardError=syslog\nSyslogIdentifier=rocketchat\nUser=rocketchat\nEnvironment=LD_PRELOAD=/opt/Rocket.Chat/programs/server/npm/node_modules/sharp/vendor/lib/libz.so NODE_ENV=production MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=http://***TODO_CHANGE_HOST_NAME***:3000/ PORT=3000 MONGO_OPLOG_URL=mongodb://localhost:27017/local?replSet=rs01\n[Install]\nWantedBy=multi-user.target" | sudo tee /usr/lib/systemd/system/rocketchat.service

必要なOSユーザ(CentOS)を作成します。作成したらsudo権限をあげてください。

sudo useradd -M rocketchat && sudo usermod -L rocketchat
sudo chown -R rocketchat: /opt/Rocket.Chat
sudo visudo

rootユーザに権限付与してる行が下の方にあるので、真似て rocketchat ユーザにも付与します。

visudoで行追加
rocketchat ALL=(ALL) ALL

まずはDBを起動します。

sudo systemctl start mongod
systemctl status mongod
sudo systemctl enable mongod
mongo --eval "printjson(rs.initiate())"

mongo コマンドで "ok": "1" と出たことを確認してください。
次にRocketChatを起動します。

sudo systemctl start rocketchat
systemctl status rocketchat
sudo systemctl enable rocketchat

起動確認

curl localhost:3000

それっぽいのが返って来ればOKです。ただし、まだCentOS内からしかアクセスできません。

他のPCからアクセスできるようにする。(ファイアウォール設定)

まだCentOSでの作業です。

sudo systemctl start firewalld
systemctl status firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --add-port=3000/tcp --zone=public --permanent
sudo firewall-cmd --reload

Windowsに戻って動作確認

ようやくWindowsに帰ってきて動作確認です。

ブラウザで、 http://***TODO_CHANGE_HOST_NAME***:3000 にアクセスして、初期設定を行ってください。

初期設定が終わったら

お疲れ様でした!

もし、チャットの運用・運営方法をお探しでしたら、こちらも併せて読んでいただけると嬉しいです。
仕事でチャットを使うときにまず作るチャンネルN選

良いチャットライフを!!

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1