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

Node.js で自前のサーバーに設置する

@hakoniwajs/node をインストールし、npx hakoniwa serve で HTTP サーバーを起動します。

VPS や自宅サーバーなど、自分で管理しているサーバーで動かす方法です。データは node:sqlite による SQLite のファイルに保存されます。

必要なもの

  • Node.js 22.13 以降 (node:sqlite を使います)

インストールと起動

npm install @hakoniwajs/node
npx hakoniwa serve

@hakoniwajs/node をインストールすると hakoniwa コマンドが使えるようになり、serve サブコマンドで HTTP サーバーが起動します (既定のポートは 3000。PORT で変更できます)。

  • 待ち受け先を指定しない npx hakoniwa serve は、すべてのインターフェースで待ち受けます。このときは HAKONIWA_BASE_URL が必要です。未設定だと起動前にエラーで終了します。既定ポートなら HAKONIWA_BASE_URL=http://localhost:3000 です。メールログインのリンクと OAuth のコールバックに使います
  • 自分の PC だけで開くなら HAKONIWA_HOST=127.0.0.1 (または localhost、::1) にしてください。ループバックで待ち受けるときは HAKONIWA_BASE_URL を省略でき、http://localhost:<実際のポート> になります。この URL はリクエストの Host ヘッダからは決めません
  • データベースは既定で ./data/hakoniwa.sqlite に作られます (HAKONIWA_DB_PATH で変更できます)
  • ログインのセッションなどに使う秘密鍵 (HAKONIWA_AUTH_SECRET) は、未設定なら初回の起動時に自動で生成されてデータベースに保存されます
  • 最初の管理者は、ログインしてから /admin/setup を開き、サーバーのコンソールに出力されるセットアップコードを入力すると登録できます。HAKONIWA_ADMIN_EMAILS=you@example.com のように環境変数で指定しておくこともできます

設定できる項目は 環境変数一覧 を参照してください。

公開する

サーバー自体は HTTPS を扱いません。インターネットに公開する場合は、nginx や Caddy などのリバースプロキシを前段に置いて HTTPS を終端し、HAKONIWA_BASE_URL にはブラウザで開く公開 URL を設定してください。同じマシンのリバースプロキシからだけ届ければよいときは HAKONIWA_HOST=127.0.0.1 のままで構いません。公開 URL が http://localhost:<ポート> ではないときは、ループバック待ち受けでも HAKONIWA_BASE_URL を設定してください。プロセス自体を LAN や公開アドレスで待ち受けるときは HAKONIWA_HOST=0.0.0.0 (または :: やその IP) にし、HAKONIWA_BASE_URL も設定します。未設定のままでは起動前にエラーで終了します。

ゲームを開始する

ブラウザで /login からログインし、/admin の「新しいゲームを開始」でゲームを始めます。CLI から始めることもできます。

npx hakoniwa game new --name 第1回 --start-at 2026-10-01T21:00:00+09:00 --final-turn 100 --unit-time 6h

ゲームの開始・終了やバックアップなどは CLI からも操作できます。CLI を参照してください。

ターンの進行

Node.js 版は、サーバー内のタイマーが 60 秒ごと (HAKONIWA_TURN_CHECK_INTERVAL_SEC で変更可) にターンの進行を確認します。アクセスがなくてもターンは進みます。

静的ファイル

地形の画像や CSS は @hakoniwajs/core パッケージ内の public/ から配信されます。HAKONIWA_PUBLIC_DIR で別のディレクトリに差し替えられます。