自サーバー案
自分のサーバーに置く道
マネージドに預けるのが今の標準ですが、置き場所を自分で決めなければならないこともあります。社内からしか見えない場所に置きたい、既に借りているサーバーに相乗りしたい、といった事情です。この回は選択演習です。今すぐ必要でなければ、読んで手順を書き出すだけで構いません。
自分のサーバーに置くと決めた瞬間、マネージドが代わりにやっていたことが全部こちらの仕事になります。中でも大きいのが動かし続けることです。
npm run start だけでは足りない
サーバーに入って npm run start と打てば、fleama は動きます。ですが、その接続を切った時点で終わります。サーバーを再起動しても戻ってきません。何かの拍子に落ちたら、誰かが気づいて手で立ち上げ直すまで止まったままです。
そこで Linux に元から入っている systemd に面倒を見てもらいます。systemd は、決められた設定どおりにプログラムを起動し、落ちたら起こし直し、サーバーの起動時にも一緒に立ち上げてくれる仕組みです。
ユニットファイルを1枚書く
面倒を見てほしい相手のことは、ユニットファイルという1枚のテキストで伝えます。fleama-next.service という名前で置きます。中身は名前と値を並べただけで、大事なのは4つです。
WorkingDirectory は、どのフォルダで動かすかです。ここが違うと .next が見つかりません。
ExecStart は、何を実行するかです。npm run start にあたるコマンドを、省略しない絶対パスで書きます。systemd はログインしたときのような環境を持たないので、npm だけでは見つけられません。
Restart は、落ちたあとどうするかです。always にしておけば、止まるたびに起こし直してくれます。
WantedBy は、いつ一緒に立ち上げるかです。multi-user.target にしておくと、サーバーの起動時に自動で始まります。
書いたら systemctl enable --now fleama-next で有効にします。この先の細かいところは「サーバー構築入門」で扱います。ここでは、ファイル1枚で常駐させられると分かれば十分です。
演習
fleama-next.service を書き、4つの設定がそれぞれ何のためのものかを画面にまとめます。