さくらのVPSでquoridorn-mark2を永続的に動かす備忘録
永続化については公式サポート範囲外です。
環境
さくらのVPS1Gプラン
Win10にインストールした仮想Ubuntu(18でも20でも)
Apache2.4
nginx
mongodb
node.js
minio
公式案内
コリドーンマーク2はアプリケーションサーバーと実際に操作するクライアントからなっています。ここにあるよ。
サーバー
クライアント
環境の準備
git、npm、node、mongo、mongodが必要です。
gitを使えるようにする。
1.githubにアカウント登録する。
https://github.co.jp/へ飛びます。githubに登録するをクリック。取得したいユーザー名、メアド、任意のパスワードを入れたらクイズ認証の「認証する」をクリック。簡単なクイズに正解してクリエイトアカウントしてください。あとは届いたメールの指示に従えばOK。
2.ubuntuにgitをインストールする。
ターミナルを立ち上げて、
sudo apt install git
git --version #バージョンが表示されるか確認
git config --global user.name 登録したユーザー名
git config --global user.email 登録したメアド
git config --global core.editor 'vim -c "set fenc=utf-8"' #エディタにvimを使う設定
3.公開鍵を登録する
cd ~/.ssh
ssh-keygen -t rsa -b 4096 -C 登録したメールアドレス #この後3回エンターを押す
~エンター押しは中略~
cat ~/.ssh/id_rsa.pub
~ssh-rsaで始まってメールアドレスで終わる長いなにか~
この「ssh-rsaで始まってメールアドレスで終わる長いなにか」をコピーします。ブラウザでgithubにアクセスしてsettings(右上のここ)をクリック。
SSH and GPG keysをクリック、NEW SSH Keyをクリック。タイトルは自分が分かりやすい名前を適当に、Keyに先ほどコピペした長たらしいやつを全部ペースト、Add SSH Keyをクリック。
npm、nodeを使えるようにする
Ubuntuに最新のNode.jsを難なくインストールするを参照のこと。
sudo apt install -y nodejs npm
sudo npm install n -g
sudo n stable
sudo apt purge -y nodejs npm
exec $SHELL -l
node -v #バージョン確認
ついでにこれも。
npm install -g @vue/cli n
mongo、mongodを使えるようにする
Install MongoDB Community Edition on Ubuntu参照。あめりか語?chorome先生で右クリックして日本語翻訳するか自力で読むのじゃ。
sudo ufw allow 27017
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
怒られたらsudo apt-get install gnupgして再チャレンジしてね。
echo "deb [arch = amd64、arm64] https://repo.mongodb.org/apt/ubuntu focus / mongodb-org / 4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list #長いけどfocus~4.4.listまでが1文
sudo apt-get update
sudo apt-get install -y mongodb-org
echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-org-shell hold" | sudo dpkg --set-selections
echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
echo "mongodb-org-tools hold" | sudo dpkg --set-selections
mongodの確認作業と自動再起動設定
sudo systemctl daemon-reload
sudo systemctl start mongod
sudo systemctl status mongod #緑の〇があればOK
sudo systemctl enable mongod
sudo systemctl stop mongod
sudo systemctl restart mongod
mongoの確認
mongo #>と表示されればOK。quitかexitあたりで抜けられたはず
minioのインストールと設定
MinIO Quickstart Guide参照。あめりか語?(以下略
sudo ufw allow 9000
wget https://dl.min.io/server/minio/release/linux-amd64/minio
sudo chmod +x minio
起動確認。
sudo MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=任意のパスワード ./minio server /mnt/data
ブラウザでhttp://VPSのIPアドレス:9000にアクセス。
うまく出来なかったらwgetの後のURLをhttps://dl.min.io/server/minio/release/linux-arm64/minioにしてみてね。
コリドーン用の設定。無事ログインできたら右下の+をクリック。
真ん中クリック。くりえいとばげっと。quoridornと入力してエンター。
左側にquoridornが出来るのでクリック。Prefixにアスタリスク1個、ReadOnlyを選択してAddクリック。
コリドーンサーバーのインストールと起動
git clone https://github.com/HillTopTRPG/quoridorn-server.git
cd quoridorn-server
npm install
ここで怒られたらログをよく読んでぐぐって頑張って。
ls -a
cp .env.example .env
cd config
cp 後ろが.exampleのやつ .exampleを取ったもの #全てのexample終わるまで繰り返し
cd ../message
cp 後ろが.exampleのやつ .exampleを取ったもの #全てのexample終わるまで繰り返し
cd ../
npm run build
ここで怒られたらログをよく読んでぐぐって頑張って。
vim conf/server.yamlして中身を書く。mongodbの設定確認は
mongo
show dbs
でコリドーンに使ってそうなのが出てくるはず。出なかったら作って。(作り方はググってね)
vim conf/storage.yamlして中身を書く。
vim message/message.yamlして中身を書く。
vim message/termsOfUse.txtして中身を書く。
npm run node-server
エラーが出たらよく読んでぐぐって頑張って。あとポート8000は開けといて。よくやる修復方法は
distディレクトリとpackge-lock.jsonを削除。npm installの際に足りないやつをインストールしたりパーミッション見直したりディレクトリねーよと言われたら作ったり。argon2とbcryptが主に曲者だと思う。
bcrypt入れるためにはsudo apt-get install build-essential python2.7する。
argon2入れるためにはこの辺とかこの辺必要だった気がする。
どっちも自信ないのでぐぐって頑張ってください。
コリドーンサーバーの停止はCtrl+C。
コリドーンサーバーの永続化
※公式サポート対象外です。私も自信ないです。でも動いてる。ナンデ?
/etc/systemd/systemに以下内容のファイルをquoridorn-server.serviceの名前で作成します。
[Unit]
Description = quoridorn-mark2-server
After=network.target
[Service]
ExecStart=/home/ユーザー名/.node_modules_global/bin/npm run node-server &
Restart=always
WorkingDirectory=/home/ユーザー名/quoridorn-server
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=node-server
Type=forking
Environment=NODE_ENV=production
PORT=8000
[Install]
WantedBy=multi-user.target
作成したら以下コマンド実行。
sudo systemctl daemon-reload
sudo systemctl start quoridorn-server.service
sudo systemctl status quoridorn-server.service #確認
sudo enable quoridorn-server.service #自動再起動設定
うまく動くといいね。多分一度ターミナル閉じる羽目になると思います。私もなんでこれで永続化できてるか分からん。不思議。ダメだったら諦めてコリドーン使う間はターミナルからnpm run node-serverしてね。
コリドーンクライアントの作成
さくらVPS用のターミナルはここで一度お別れします。なぜなら、クライアントを生成するのに2G以上のメモリを食うからです。
Win10のUbuntuを起動する
バージョンは20.04がいいですね。Microsoft storeから無料でインストールできます。パワーシェルを起動してからUbuntu起動してください。最初はかなり時間がかかるけどめげないで。
クライアントを生成する
ここまで出来ていれば公式サイトの説明も簡単丁寧に感じるはず。
無事に最終的なdistディレクトリが出来たらUbuntuからWin10にコピペしときます。Ubuntuを起動したままエクスプローラーで\\wsl$\Ubuntu-20.04\home\ユーザー名にアクセスするとコリドーン用のフォルダが見つかると思います。distのみでいいので、デスクトップでもマイドキュメントでもまぁ適当にコピペしときます。
クライアントをWEB上にアップする
FileZillaを利用するのが簡単です。ダウンロードはここから。VPSには適当にWEBサーバーを立てておきます。Apache2かnginxでぐぐって頑張って。またはこの辺参考にどうぞ。(古い記事なのでUbuntu18.04になってるけど同じ)
FileZillaの編集→設定→SFTPとクリック。鍵ファイルの追加からppkファイルをクリック。ppkファイルがない?「rsa ppk 変換」とかでググるとこの辺りがヒットするので頑張って。
ファイル→サイトマネージャーと開いてサイトを新規作成します。
プロトコル:SFTP
ログオンタイプ:鍵タイプ
ユーザー:ターミナルに接続してるいつものユーザー名
鍵タイプ:ppkファイル
これで接続できるはずです。なんかパスワード聞かれたら鍵のパスワード入れよう。
WEB公開用に設定したディレクトリにdistの中身を全部入れます。ブラウザからhttp://VPSのIPアドレスにアクセス。dist作るときにサブディレクトリ設定した人はサブディレクトリ名も忘れずに入れてください。httpsには対応してないので注意。IPアドレスがやだって人は頑張ってドメイン設定してください。こことかタダだよ。設定の仕方は頑張って入れたWEBサーバーに合わせてググってください。