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 で見積り・制限 |
確認
次に読む
- 外部公開と HTTPS → 12-networking-basics / 13-certificates-and-tls
- セキュリティ強化 → 11-security-hardening
- 常駐監視 → 17-startup-and-healthchecks