コンテンツにスキップ
箱庭諸島2 TypeScript 版
Esc
↑↓移動↵開く⌘Jプレビュー
このページの内容

Cloudflare にワンクリックでデプロイする

Deploy to Cloudflare ボタンで、箱庭諸島2を自分の Cloudflare アカウントに設置します。いちばん簡単な方法です。

Deploy to Cloudflare

いちばん手軽な方法です。ボタンを押すと、テンプレートリポジトリ hakoniwajs/template-cloudflare が自分の GitHub アカウントにコピーされ、Cloudflare Workers にデプロイされます。コマンドラインの操作は必要ありません。

必要なもの

デプロイされるものは次のとおりです。すべて Cloudflare 側で自動的に作られます。

リソース 用途
Worker ゲーム本体 (画面・API・OGP 画像)
Durable Object (SQLite) ゲームのデータ (島・ログ・ユーザー・設定)
Cron Trigger (15 分ごと) ターンの進行
Static Assets 地形の画像や CSS

手順

Deploy to Cloudflare ボタンを押す

上のボタンを押すと Cloudflare のダッシュボードに移動します。GitHub と連携し、テンプレートリポジトリをコピーする先 (自分のアカウントやリポジトリ名) を選びます。

デプロイを実行する

入力が必要な項目はありません。 そのままデプロイを実行してください。デプロイが完了すると、https://<名前>.<サブドメイン>.workers.dev 形式の公開 URL が表示されます。

ログインのセッションなどに使う秘密鍵は、初回の起動時に自動で生成されて保存されます。

ログインする

公開 URL の /login を開き、「メールでログイン」に自分のメールアドレスを入力します。

メール送信サービス (Resend) をまだ設定していないので、メールは送信されず、ログイン用のリンクが Worker のログに出力されます。Cloudflare ダッシュボードで当該 Worker の「Logs」(リアルタイムログ) を開くか、npx wrangler tail を実行してリンクを確認し、ブラウザで開いてください。

最初の管理者になる

ログインしたまま /admin を開くと、管理者がまだいないので /admin/setup (初期セットアップ) に移動します。このとき セットアップコードが Worker のログに出力されます。ログに表示された XXXX-XXXX-XXXX-XXXX-XXXX 形式のコードを入力すると、ログイン中のアカウントが管理者になります。

Worker のログを見られるのは Cloudflare アカウントの持ち主だけなので、公開 URL を知っている他人が先に管理者になってしまうことはありません。初期セットアップは管理者が 1 人もいないときだけ使えます。

ゲームを開始する

/admin を開き、「新しいゲームを開始」でゲームを始めます。ゲーム名・開始日時・最終ターン・1 ターンの長さを指定できます (すべて省略可能)。サイトのタイトルなどは、同じ画面の「サイト設定」で変更できます。

これでプレイヤーが島を発見できる状態になりました。公開 URL を仲間に共有しましょう。

プレイヤー向けのログイン方法を用意する

プレイヤーにログインしてもらうには、次のいずれかを設定します。

  • Discord / X (Twitter) ログイン: 仲間内で遊ぶならいちばん手軽です。各サービスの開発者ポータルでアプリを作り、クライアント ID と secret を Worker に登録します
  • メールログイン: Resend の API キーを登録すると、実際にログイン用のメールが送られるようになります

手順は ログイン方法の設定 を参照してください。

ほかの人も管理者にしたい場合は、管理画面の「管理者」からメールアドレスを追加できます。

設定を変更する

サイトのタイトルやフッタの表示、タイムゾーン、NG ワードなどは、管理画面の「サイト設定」から変更できます。環境変数を編集して再デプロイする必要はありません。

Worker の設定 (環境変数と secret) は、Cloudflare ダッシュボードの当該 Worker の「Settings → Variables and Secrets」から変更できます。X / Discord ログインの secret などはここで登録します。設定できる項目は 環境変数一覧 を参照してください。

コピーされたテンプレートリポジトリの wrangler.jsonc を編集して push すれば、Workers Builds により自動で再デプロイされます。

アップデート

新しいバージョンの @hakoniwajs/cloudflare が公開されたら、コピーしたリポジトリの package.json の依存バージョンを上げて push してください。Workers Builds が再デプロイします。データベースのスキーマは起動時に自動でマイグレーションされます。

表示の速さ (キャッシュ)

トップページ・観光ページ・ゲーム一覧・開発画面は、Cloudflare の Workers Cache に自動でキャッシュされます (ログイン中のページはセッションごとに分けてキャッシュします)。wrangler.jsonc の追加設定は不要です。Workers Cache を使うには、src/worker.ts で CachedPages を再エクスポートします (export { CachedPages, HakoniwaGame } from "@hakoniwajs/cloudflare";)。仕組みは キャッシュの仕組み を参照してください。Workers Cache (cache.enabled: true) を有効にすると静的アセットへのリクエストも Workers のリクエストとして課金対象になります。