Skip to content

メンテナンス情報を公開する ​

LynqChatサーバーを停止する際に、メンテナンス情報を公開できます。

手順 ​

JSONファイルの作成 ​

LynqChatのプロジェクトルートでpnpm maintenanceを実行します。
案内に従ってメンテナンス理由、終了予定時刻を設定します。

続行しますか?でYesを選択します。

サーバーの用意 ​

これによって、packages/maintenance-info/dist/info.jsonが作成されます。
任意の方法でこのJSONファイルをインターネットに公開してください。
運営しているLynqChatサーバーのユーザーがGETリクエストでアクセスできる必要があり、少なくとも最終的にアクセスするオリジンからのCORSの制限が無効である必要があります。

Cloudflare Pages ​

続行しますか?でYesを選択すると、Cloudflare Pagesにデプロイするかどうかを選択できます。
これにはWrangler CLIがランタイムにインストールされていて、ログイン済みである必要があります。
Wrangler CLIがインストールされていて、ログイン済みの場合はYesを選択することでCloudflare Pagesにデプロイできます。
Yesを選択するとwrangler pages deploy ...が呼び出されるので、Wrangler CLIの案内に従ってデプロイします。

メンテナンス情報URLの設定 ​

config.yamlのserver.maintenanceUrlをデプロイしたパスに設定し、LynqChatサーバーを再起動してください。
例: maintenanceUrl: https://maintenance.lynqchat.example.com/info.json

メンテナンスの終了 ​

server-infoエンドポイントに対して正常に通信できた場合はメンテナンス情報を取得しませんが、仕組みに記載している通り、メンテナンスを終了した情報を公開してください。
LynqChatのプロジェクトルートでpnpm maintenanceを実行し、メンテナンス中の情報ファイルが検出された場合、メンテナンスを終了した情報を公開できます。

⚠️注意

正常に本体のサーバーに接続できることが確認できた後に作業を行ってください。

メンテナンスを終了しますか?でYesを選択することでメンテナンスが終了した情報にinfo.jsonが更新されます。
また、ここでNoを選択することでメンテナンス情報を更新できます。
終了予定時刻が長引く場合などにご利用ください。

注意事項 ​

💡ヒント

✅Service Workerが有効なユーザーに表示されます。
⚠️そのため、初めてアクセスしたユーザーには表示されず、リバースプロキシの502などが表示されます。

仕組み ​

起動時にserver-infoの通信に3回失敗した場合にメンテナンス情報URLのJSONファイルを取得します。
メンテナンス情報URLが設定されていない場合、メンテナンス中ではないと情報が提供された場合、JSONの取得に失敗した場合はサーバーがオフラインであると表示されます。
そのため、メンテナンスが終了した場合は必ずメンテナンスが終了した情報を公開してください。メンテナンス中の情報のままの場合はサーバーが停止している場合にもメンテナンスであると表示されます。