# 動作要件

> セルフホスティングの Nodaro に必要なのは、Compose v2 を含む Docker 24 以降、Supabase のデータベース、S3 互換ストレージ、ポート、そしてプロバイダーキーか Nodaro Cloud への接続です。

Source: https://nodaro.ai/ja/docs/self-hosting/requirements

セルフホスティングの Nodaro の**動作要件**は 5 つです。Docker、ログイン機能を備えたデータベース、S3 互換のオブジェクトストレージ、Redis、そして 1 つ以上のモデルプロバイダーです。Community エディション用の Compose スタックにはデータベース、ストレージ、Redis が同梱されているため、1 台のサーバーで動かすなら、必要なのは Docker とモデルプロバイダーだけです。このページのそれ以外の項目は、任意か、本番環境向けのものです。

## 必要なもの
| 要件 | Compose スタックに同梱 | 自分で用意する場合 |
| --- | --- | --- |
| **Docker 24 以降**と **Docker Compose v2** | — | 必須です。`docker-compose` ではなく、`docker compose` として呼び出します。 |
| **データベースとログイン** | Supabase Postgres、GoTrue、PostgREST。マイグレーションは起動時に適用されます。メールアドレスとパスワードでアカウントを登録できます。 | マネージドの Supabase プロジェクト。無料プランで十分です。プロジェクトの URL、service-role キー、anon キーが必要で、マイグレーションは自分で適用します。 |
| **オブジェクトストレージ** | MinIO。メディアは自分のディスクに保存されます | S3 互換の任意のストレージ。動作確認済み：Cloudflare R2（推奨。エグレス料金なし）、AWS S3、MinIO、Backblaze B2。 |
| **キュー** | Redis 7 | 自分で用意した Redis。クラスターや Sentinel のエンドポイントも使えます |
| **モデルプロバイダー** | — | 1 つ以上のプロバイダーキー、または Nodaro Cloud への接続 |

Nodaro はブラウザーに公開のメディア URL を渡すため、メディアはユーザーのブラウザーからログインなしで読み取れる必要があります。同梱の MinIO は、アプリ自身のアドレスの `/storage/` 以下でこれを実現しています。自分のバケットを使う場合は、[オブジェクトストレージを設定する](https://nodaro.ai/docs/self-hosting/install#4-configure-object-storage)を参照してください。

## モデルプロバイダー
AI モデルを呼び出すノードには、プロバイダーが必要です。プロバイダーがなくても環境は起動し、デモも開けますが、モデルを使うノードはどれも実行できません。`/setup` ページか `.env` で、次のキーを 1 つ以上追加してください。

| 変数 | 使えるようになるもの |
| --- | --- |
| `KIE_API_KEY` | 最も多くのモデルに対応：画像、動画、オーディオ、テキストのモデル |
| `REPLICATE_API_TOKEN` | 独自のカタログを持つ、別のプロバイダー |
| `ANTHROPIC_API_KEY` | テキストノードで使う Claude のモデル |
| `ELEVENLABS_API_KEY` | 音声機能：テキストから音声、吹き替え、ボイスチェンジャー、強制アライメント |
| `FAL_KEY` | 任意です。[Sync Lipsync v3](https://nodaro.ai/docs/models/video/sync-lipsync-v3) などのモデルに使います。このキーがない場合、それらのモデルは使えませんが、アプリのほかの部分には影響しません。 |

キーの代わりに、環境を Nodaro Cloud アカウントに接続することもできます。[Nodaro Cloud への接続](https://nodaro.ai/docs/self-hosting/cloud-connect)を参照してください。特定のノードで使うキーも含めた全一覧は、[プロバイダーキー](https://nodaro.ai/docs/self-hosting/provider-keys)にあります。

## 任意で用意するもの
- **Node.js 22 以降**：開発のために、API やワーカーを Docker の外で動かす場合に必要です。`tools/` にあるコマンドラインのプローブとキー生成ツールも、Node.js で動きます。
- **ドメイン名と TLS 証明書**：本番環境で必要です。[リバースプロキシと HTTPS](https://nodaro.ai/docs/self-hosting/reverse-proxy) を参照してください。

## ポート
| ポート | 使用するもの | Compose ファイルで公開 |
| --- | --- | --- |
| `3000` | アプリ：エディター、API、メディア、ログインを、すべて 1 つのオリジンで提供 | はい |
| `9001` | MinIO コンソール（トラブルシューティング用） | はい（`127.0.0.1` のみ） |
| `80` と `443` | HTTPS 用のリバースプロキシ | Nodaro では公開しません |
| `9000` | コンテナ内の API。MCP クライアントは、このポートに直接アクセスする必要があります。 | いいえ。[MCP](https://nodaro.ai/docs/self-hosting/mcp) を参照してください。 |

Redis とデータベースは Compose のネットワーク内部で動き、ホストマシンのポートは使いません。`3000` や `9001` がすでに使われている場合は、`docker-compose.community.yml` で、そのポートマッピングのホスト側を変更してください。

## ディスク
- **イメージ**：初回起動時に、約 2.4 GB をダウンロードします。
- **ボリューム**：`db-data` にはデータベース、`minio-data` にはメディア、`redis-data` にはキュー、`app-data` にはインスタンスの暗号化キーが保存されます。Nodaro は保存したメディアを自動では削除しないため、メディアのボリュームは結果が増えるたびに大きくなります。古いメディアを一定期間後に削除したい場合は、バケットにライフサイクルルールを追加してください。[スケーリング](https://nodaro.ai/docs/self-hosting/scaling#storage-lifecycle)を参照してください。

## マシンのサイズ
デフォルトの構成では、すべてを 1 つのコンテナで動かします。アクティブユーザーが 5 人程度までなら、この構成で問題ありません。最も重い処理はレンダリングです。レンダリングワーカーはヘッドレス Chrome を動かし、CPU がボトルネックになるため、レンダリングワーカーは 1 台のマシンにつき 1〜2 個を目安にしてください。ユーザーがそれより多い場合は、ワーカーを複数のコンテナに分けます。[スケーリング](https://nodaro.ai/docs/self-hosting/scaling)を参照してください。

アプリのイメージには、`amd64` と `arm64` のマシン向けのビルドがあります。

## Windows
Windows では、バックアップと復元のスクリプトを、PowerShell や WSL ではなく **Git Bash**（Git for Windows と一緒にインストールされるシェル）から実行してください。[バックアップと復元](https://nodaro.ai/docs/self-hosting/backups)を参照してください。

## Frequently asked questions

### セルフホスティングの Nodaro には、どのバージョンの Docker が必要ですか？

Docker 24 以降と Docker Compose v2 が必要です。コマンドは docker-compose ではなく、docker compose として呼び出します。

### Nodaro をセルフホスティングするには、Supabase のアカウントが必要ですか？

いいえ。Community エディション用の Compose スタックには Supabase Postgres、GoTrue、PostgREST が同梱されていて、マイグレーションも自動で適用されます。マネージドの Supabase プロジェクトは選択肢の 1 つで、必須ではありません。

### Nodaro では、どのオブジェクトストレージを使えますか？

同梱の MinIO か、S3 互換の任意のストレージを使えます。Cloudflare R2、AWS S3、MinIO、Backblaze B2 で動作を確認しています。エグレス料金がかからないため、Cloudflare R2 をおすすめします。

### Nodaro のイメージは ARM サーバーで動きますか？

はい。アプリのイメージには、amd64 版に加えて arm64 版のビルドもあります。

### 1 つのコンテナで、何人のユーザーに対応できますか？

すべてを 1 つのコンテナで動かす構成は、アクティブユーザーが 5 人程度までなら問題ありません。それを超える場合は、ワーカーを別のコンテナに分けてください。
