ガイド4:トラブルシューティング
Cloudflare OS を自前で動かすときによくあるトラブルと対処法
トラブルシューティング
ローカル/NAS で動かすときのよくある問題と解決方法をまとめます。
1. pnpm install が失敗する
- 原因: Node バージョンが古い(Vite7 は Node 20.19+ / 22.12+ が必要)。
- 対処:
nvm use 22等で Node 22 LTS にしてから再度pnpm install。 - 補足:
pnpm-lock.yamlがあるなら--frozen-lockfileを付けて再現性を確保。
pnpm install --frozen-lockfile2. wrangler でポートが使用中(EADDRINUSE)
- 原因: 他に 8787 を使っているプロセスがある。
- 対処: 使わないプロセスを止めるか、
VITE_BACKEND_HOST等でポートを変えます。
lsof -i :8787 # 確認
kill <PID> # 該当プロセスを終了3. ブラウザで開くと真っ白 / 読み込まない
原因例:
- 初回ビルドがまだおわっていない(
run-localの初回は時間がかかる) - サーバーを起動する前に
distが無い(run-localは自動でビルドするが、 失敗している場合あり)
- 初回ビルドがまだおわっていない(
対処:
# フロントを明示的にビルド cd packages/workshop-frontend && pnpm run buildその後 root で
pnpm run-local。
4. OAuth で「Callback URL エラー」が出る
- 原因: 外部サービス側に登録したコールバック URL が http のまま、または ホスト・ポートが一致していない(OAuth は完全一致が必須)
- 対処:
https://<ホスト名>/...を OAuth アプリ設定へ、そしてアクセス先もその URL に。- NAS 外部公開の場合は ガイド2(TLS / cloudflared)を先に。
5. ログイン / Gatekeeper 認証が失敗する
- 原因:
.dev.varsに書いた Client ID / Secret が正しくない/未設定。 - 対処:
- 環境変数を確認(
env | grep -i github) - 秘密が正しく注入されているかを、各 gatekeeper の README と照合
.dev.varsは quote や余白 などで狂わないよう慎重に書く
- 環境変数を確認(
6. NAS の CPU 負荷が高い / ARM機で失敗
- 原因: arm64 では
workerdやesbuildといったネイティブバイナリを含む依存が 公式では十分に確認・配布されていないことがある。 - 対処: x86_64 機を前提にする(本サイトの前提)。どうしても arm の場合は コンテナ化し、まず
container上でpnpm installが通るかを確認。
7. 認証が破綻する(LAN 内で誰でも見える)
- 原因: デフォルトで
ADMINS=["admin"]が付いている - 対処: 外部公開前は admin を外す/パスワードを忘れず強化。 詳細は ガイド2:QNAP NAS を再確認。
8. wrangler login を要求された
pnpm run-localは現在 Cloudflare アカウント不要で動きます。- もし
run-localではなく、Cloudflare 側にデプロイする場合にのみwrangler loginが必要。
9. 実行ログの見かた
- ターミナルに出る wrangler のログをまず見る。
.wranglerの中にも各種 state があるので、バックアップ/調査の対象に。
ls -la .wrangler
cat .wrangler/state/v3/* # 例なかなか直らない時は
- 公式: https://github.com/cloudflare/cloudflare-os (Issues / Discussions)
- このサイトの GitHub リポジトリ にも 発見した事象を追記して共有してください。