Gadget 02:QNAP NAS 基本

QNAP NAS で Cloudflare OS を常時稼働させるための前提・ストレージ設計・常駐の考え方

QNAP NAS 基本

「常時稼働するセルフホスト環境」として QNAP NAS を使うときの前提、 ストレージ設計、起動監視の考え方をまとめます。

目的

  • NAS で Cloudflare OS を「壊れにくく、再起動で復帰する」形で動かす
  • データを消さないための永続化設計を理解する

前提条件

  • QNAP は x86_64(Intel/AMD)前提。ARM(armv8 / arm64)機は未検証(ネイティブ依存の問題)
  • Container Station が動くこと(x86_64 機の QTS / QuTS hero)
  • ポート 8787 を LAN に公開できること
Warning本番デプロイは COMING SOON

Cloudflare OS の workerd 本番デプロイ手順は公式未整備です。 そのため NAS 運用は「開発用 pnpm run-local を常駐させて持ち上げる」ことが現実解です。

手順

1. Node コンテナを作る(推奨ルート)

Container Station → 作成 → イメージ node:22(または node:24)を利用。

2. コンテナ内でセットアップ

apt-get update && apt-get install -y git
corepack enable
git clone https://github.com/cloudflare/cloudflare-os.git
cd cloudflare-os && pnpm install --frozen-lockfile
pnpm run-local &

3. ポートと自動起動

  • コンテナのポートマッピング: 8787 -> 8787
  • 「再起動時に自動開始」を ON
  • QTS 側のスケジュールでコンテナを監視しても OK

4. 永続化(重要)

.wrangler/ には Durable Objects のローカル永続データが入ります。 コンテナを作り直したら消えるため、名前付きボリュームへ退避します。

マウント元(ホスト/NAS) マウント先(コンテナ) 用途
/share/Container/cfos-data /app/.wrangler 永続データ
/share/Container/cfos-repo /app リポジトリ本体
# 例: データだけボリュームに
docker run -d --name cfos \
  -v cfos_data:/app/.wrangler \
  -p 8787:8787 \
  node:22 \
  bash -c "cd /app/cloudflare-os && pnpm run-local"

詳細は Gadget 16 を参照。

よくある失敗

症状 原因 対処
NAS 再起動後に消えている コンテナ停止 / データがボリューム外 「再起動時に自動開始」ON + .wrangler をボリュームへ
ARM 機で pnpm install が失敗 ネイティブバイナリ非サポート x86_64 機へ変更、またはコンテナ上で先に検証
外部公開して誰でもログインされる ADMINS=["admin"] の初期値が残存 Gadget 11 で初期化を除去
CPU 負荷が高い 常駐ランタイムのリソース Gadget 15 で見積り・制限

確認

次に読む