Docker でのインストール(外部 Caddy)
この構成では、NocoBase アプリケーションコンテナと Caddy コンテナを分けて実行します。まず Docker でのインストール(内蔵 Nginx) を完了し、その後エントリを外部 Caddy コンテナへ切り替える形です。
この構成を使う場面
- NocoBase と Web サーバーを分けて運用したい
- Caddy でリバースプロキシや HTTPS 設定を簡単にしたい
- 公開するのはプロキシコンテナだけにしたい
docker-compose.yml の例
full イメージが必要な場合は、latest-no-nginx を latest-full-no-nginx に置き換えてください。
13000:80 のマッピングは、ホストの標準ポートを直接使わずにローカルでテストしやすくするためのものです。本番環境では通常 13000:80 のままにはせず、外部 Caddy コンテナをホストの 80 と 443 に直接マッピングします。
重要なポイント
NOCOBASE_EXTRACT_CLIENT_ASSETS=trueでクライアントアセットを抽出し、プロキシ設定を生成しますNOCOBASE_PROXY_PROVIDER=caddyで Caddy 用の設定を生成しますNOCOBASE_PROXY_UPSTREAM_HOST=appにより、Caddy コンテナは Compose ネットワーク経由でappサービスへ接続します./storageはappとcaddyの両方にマウントし、プロキシ設定、静的アセット、アップロードファイルを共有できるようにしますcaddyコンテナはnocobase.caddyが生成されるまで待機し、その後ln -sfで/etc/caddy/Caddyfileにリンクしてから起動します- 自動生成される設定は、
APP_PUBLIC_PATH配下の/files/とルートの/files/の両方を NocoBase に転送し、認証付きのファイルプレビューとダウンロードを処理します - ホストへ公開するのは Caddy コンテナのポートだけで十分です。テスト時は
13000:80から始められますが、本番環境では通常ホストの80と443を直接公開し、appサービスはホストへポートを公開する必要はありません
ホストにインストールした Caddy を使う場合
Caddy を Docker コンテナではなくホストに直接インストールしている場合は、別の docker-compose.yml を使うのがおすすめです。この構成では app サービスがホストへ直接ポートを公開し、プロキシ関連の環境変数もホスト視点の値にする必要があります。
次のような docker-compose.yml を使えます。
この構成では:
NOCOBASE_PROXY_STORAGE_PATHはホスト上のstorageディレクトリの絶対パスにしますNOCOBASE_PROXY_UPSTREAM_HOSTは127.0.0.1にします- ローカル Caddy が
127.0.0.1:13000経由でアプリへアクセスできるよう、appサービスはportsを残します
そのうえで、app コンテナ起動後に設定ファイルが生成されるのを待ち、ホスト側の Caddy 設定パスへリンクします。
ホスト側の Caddy が /etc/caddy/Caddyfile を使っていない場合は、リンク先を自分の設定パスに置き換えてください。通常は nocobase.caddy を主入口ファイルとしてそのまま使うほうが安全で、内容を手で分解してコピーするのはおすすめしません。
自動生成された設定を使わずに Caddy を自分で 管理する場合は、/files/* と APP_PUBLIC_PATH 配下の対応するルートを、SPA フォールバックルールより前で NocoBase に転送してください。完全な例は Caddy リバースプロキシを参照してください。
関連リンク
- Docker でのインストール(内蔵 Nginx) — まずは単一コンテナ構成から始める
- Caddy 静的リソースプロキシ — 生成される Caddy 設定の詳細

