ガイド2:QNAP NAS で運用
Cloudflare OS を QNAP NAS 上で常時稼働させるための現実的アプローチと注意点
QNAP NAS で運用(TypeB)
macOS だけで試した後は、使いたい時にいつでも立ち上がっているセルフホスト環境を 目指したくなります。QNAP NAS 上で常時稼働させる方法を整理します。
Warning最初に知っておく制約
記事時点(2026-08)では、Cloudflare OS の本番用 workerd デプロイの公式手順は まだ「COMING SOON」です。つまり「プロダクション用の公式セットアップ」は存在せず、 基礎的な構成(= 開発用の pnpm run-local)を常駐させて持ち上げる運用が現実解です。
推奨ルート:Container Station で Node コンテナを常駐
QNAP は Container Station(Docker ベース)が利用可能です。以下の要領で Node コンテナを作ります。
イメージ:
node:22(もしくは node:24)を pullマウント: Cloudflare OS のソースと
.wranglerを永続ボリュームとしてマウント (例:/opt/cfosに clone しておくと再構築が楽)ポート: 8787 → LAN に公開(ホストポート 8787:コンテナ 8787)
起動コマンド:
# コンテナ内で corepack enable cd /opt/cfos && pnpm install --frozen-lockfile pnpm run-local &Container Station は「再起動時に自動開始」をオンにして常駐化
TipDocker を使わない場合
QTS 上に SSH で入り、Entware / opkg から nodejs を入れる方法もあります。 ただしパッケージ管理が QTS のものと競合しやすいため、Docker(Container Station)を推奨します。
動作環境の前提
- x86_64(Intel / AMD CPU の QNAP)を前提にしています。
- ARM(armv8 / arm64)の QNAP は、
workerdやランタイム上の依存パッケージの ビルドが素通りしない可能性があるため前提外としています。- → 実際の機種で試す場合は、「
pnpm installが arm で通るか」をまず確認してください。
- → 実際の機種で試す場合は、「
外部公開(LAN の外から使う場合)
- LAN 内だけ:
http://<NAS-IP>:8787で全端末から使えます。まずはここから。 - 外から使う場合:
- 必ず HTTPS にします(OAuth クライアントは http を拒否する場合が多い)。
- QNAP の Reverse Proxy(アプリケーションポート設定)または Caddy / nginx で TLS を終端。
- クレジットカード不要で楽なら Cloudflare Tunnel(
cloudflared) が有力。
認証まわり(忘れずに設定する)
- 既定のまま外に出すと、
ADMINS=["admin"]で誰でもログインできます(開発用構成)。 - 実際に外部公開するときは:
- パスワード・認証を必ず設定する
DISABLE_PASSWORD_AUTH=false(デフォルト)のまま利用- できれば password を強くし、admin を削除 or 絞る
データのバックアップ
.wrangler/(Durable Objects の永続化)をバックアップ対象に入れる- NAS の定期バックアップ機能(Hyper Backup 等)で
/opt/cfos/.wranglerを保存
セットアップの流れのまとめ
1. QNAP > Container Station > node:22
2. clone + pnpm install --frozen-lockfile
3. pnpm run-local(8787 公開)
4. 再起動時自動起動 / ポートマッピング
5. (外使用時)HTTPS + 認証 + cloudflared
次のステップ
ガイド3:Gatekeeper 連携 で外部サービスを繋ぎ、 ガイド4:トラブルシューティング でよくある問題に備えてください。