環境変数一覧
箱庭諸島2 TypeScript 版で設定できる環境変数の一覧です。
Node.js 版では環境変数 (または .env) に、Cloudflare 版では wrangler.jsonc の vars か secret (wrangler secret put やダッシュボード) に設定します。
Node.js 版で常に必須の項目はありません。HAKONIWA_BASE_URL は、ループバック (localhost、127.0.0.0/8、::1) で待ち受けるときだけ省略できます。省略すると http://localhost:<実際のポート> になります。開発サーバーが空いているポートへずらしたときも、そのポートを使います。リクエストの Host ヘッダからは決めません。0.0.0.0 や ::、LAN や公開アドレスで待ち受けるとき (Vite の --host、HAKONIWA_HOST、ホスト未指定の hakoniwa serve) は必須で、未設定だと起動前にエラーで終了します。値を設定したときは、待ち受け先に関係なくその URL を使います。db や game のように HTTP サーバーを起動しないコマンドは、リクエストを受け取らないので、未設定なら http://localhost:<PORT> (PORT の既定は 3000) を使います。Cloudflare 版はすべての項目を省略できます。HAKONIWA_BASE_URL を省略したときは、リクエストのオリジンを公開 URL として使います。ログインのための秘密鍵は、未設定なら自動で生成されます。最初の管理者は /admin/setup で登録できます。ほかに環境変数が必要になるのは、X / Discord ログインやメール送信のように外部サービスの secret が必要な機能を使うときです。
認証・管理者
| 環境変数 | 既定値 | 説明 | Cloudflare |
|---|---|---|---|
HAKONIWA_AUTH_SECRET |
なし (自動生成) | ログインのセッションと CSRF トークンの鍵。未設定なら初回起動時にランダムな値を生成してデータベースに保存します。明示する場合は openssl rand -base64 32 などで生成した 32 バイト以上のランダム文字列 |
secret |
HAKONIWA_ADMIN_EMAILS |
なし | 管理者とみなすメールアドレス (カンマ区切り)。管理画面の「管理者」で追加した管理者に加えて、常に管理者として扱われます | vars |
HAKONIWA_BASE_URL |
Node.js 版はループバック待ち受けなら http://localhost:<ポート>。それ以外は必須。Cloudflare 版はなし (リクエストのオリジン) |
公開 URL。OAuth のコールバック、メールログインのリンク、Origin 検査に使います。Node.js 版でループバック (pnpm dev の既定、または HAKONIWA_HOST=127.0.0.1) のときは省略でき、実際に待ち受けたポートの http://localhost:<ポート> になります。非ループバックでは起動前に必要です。設定した値があるときは常にそれを使います。Cloudflare 版は未設定ならリクエストのオリジンを使います。カスタムドメインやリバースプロキシでは、ブラウザで開く公開 URL を設定します |
vars |
HAKONIWA_X_CLIENT_ID / HAKONIWA_X_CLIENT_SECRET |
なし | 両方設定すると X (Twitter) ログインが使えるようになります | secret |
HAKONIWA_DISCORD_CLIENT_ID / HAKONIWA_DISCORD_CLIENT_SECRET |
なし | 両方設定すると Discord ログインが使えるようになります | secret |
HAKONIWA_RESEND_API_KEY |
なし | メールログインのメール送信 (Resend)。未設定ならログにリンクを出力するだけになります | secret |
HAKONIWA_MAIL_FROM |
hakoniwa@example.com |
メールの送信元アドレス | vars |
HAKONIWA_DEV_LOGIN |
false |
true で開発ログイン (任意のメールアドレスでログイン) を有効にします。本番では必ず false |
vars |
ゲームの動作
| 環境変数 | 既定値 | 説明 |
|---|---|---|
HAKONIWA_MAX_CATCH_UP_TURNS |
Node.js 版は 1、Cloudflare 版は 3 |
1 回の判定で進める最大ターン数 |
HAKONIWA_ADMIN_ENABLED |
true |
管理画面 (/admin) の有効・無効 |
HAKONIWA_DEBUG |
false |
true でトップページに「ターンを進める」ボタンを表示します (管理者のみ。開発用) |
管理画面で変更する設定
次の設定は、管理画面で変更します。
| 設定 | 変更する場所 |
|---|---|
| サイトのタイトル、フッタの管理者名・連絡先・掲示板・トップページ | 管理画面の「サイト設定」 |
| タイムゾーン、追加の NG ワード、島ごとのローカル掲示板 | 管理画面の「サイト設定」 |
| 開始日時、最終ターン、1 ターンの長さ | 「新しいゲームを開始」のフォーム (CLI では --start-at / --final-turn / --unit-time)。開始後は「ゲーム設定」 |
| 管理者 | 管理画面の「管理者」(または HAKONIWA_ADMIN_EMAILS) |
Node.js 版のみ
| 環境変数 | 既定値 | 説明 |
|---|---|---|
PORT |
3000 |
サーバーの待ち受けポート |
HAKONIWA_HOST |
なし (全インターフェース) | hakoniwa serve の待ち受けアドレス。127.0.0.1、localhost、::1 ならループバックで、HAKONIWA_BASE_URL を省略できます。0.0.0.0、::、LAN や公開 IP では HAKONIWA_BASE_URL が必須です。開発サーバー (pnpm dev) の待ち受けは Vite の --host と server.host で決まり、この変数は使いません |
HAKONIWA_DB_PATH |
./data/hakoniwa.sqlite |
SQLite データベースファイル |
HAKONIWA_BACKUP_DIR |
./data/backups |
バックアップの出力先 |
HAKONIWA_TURN_CHECK_INTERVAL_SEC |
60 |
ターン進行を確認する間隔 (秒)。0 で無効 |
HAKONIWA_PUBLIC_DIR |
@hakoniwajs/core の public/ |
画像や CSS を配信するディレクトリ |
コード上の定義は packages/core/src/bootstrap/config-from-env.ts (共通)、packages/node/src/config.ts (Node.js 版) にあります。