本番環境へのデプロイ
Z-CMS を実行するのに、ソースからビルドする必要は ありません。マルチアーキ
テクチャ(linux/amd64 + linux/arm64)の公式イメージが Docker Hub の
zcms で公開され、リリースごとに更新されます。
公式イメージでデプロイする(推奨)
Section titled “公式イメージでデプロイする(推奨)”z-cms-docker-offical-image
リポジトリが、稼働中インスタンスへの最短ルートです。公式イメージを取得する完全な
docker compose スタック、すぐ使えるリバースプロキシ設定(Traefik、Caddy、Nginx、
Apache、Portainer)、各設定を説明する .env、シークレット生成と初回シード用の
ヘルパースクリプトを提供します。
git clone https://github.com/zscontributor/z-cms-docker-offical-image.git zcmscd zcms
# 1. 強力なランダムシークレット付きの .env を作成cp .env.example .env./scripts/generate-secrets.sh --write
# 2. スタックを起動(Docker Hub から zcms/* を取得)docker compose up -d
# 3. 最初の管理者 + デモサイトを作成(1 回だけ)./scripts/first-run-seed.sh自動 HTTPS 付きの公開ドメインで運用するには、リバースプロキシのオーバーレイを 重ねます(例: Traefik):
docker compose -f docker-compose.yml -f compose/traefik.yml up -d./scripts/first-run-seed.sh -f docker-compose.yml -f compose/traefik.yml各プロキシは /api → API、/admin → 管理 UI、/zcms-media → メディア、その他
すべて → 公開サイト、へルーティングします。設定・アップグレード・バックアップ・
本番向けハードニングの詳細ガイドは、そのリポジトリにあります。
公開されているイメージ
Section titled “公開されているイメージ”| イメージ | 役割 |
|---|---|
zcms/cms-api |
コア API(DB/S3 認証情報を保持) |
zcms/site-runtime |
公開サイト(テーマコードを実行 — ハードニング済み) |
zcms/admin-web |
管理 UI |
zcms/worker |
バックグラウンドジョブ |
zcms/plugin-runtime |
信頼できないプラグインのサンドボックス(認証情報なし) |
zcms/migrate |
単発実行: マイグレーション + 署名付き組み込みの登録 |
完全なデプロイには PostgreSQL、Redis、S3 互換オブジェクトストレージも必要です (compose スタックに同梱、またはマネージドプロバイダーを指定)。
チェックリスト
Section titled “チェックリスト”- サービスごとに異なる認証情報を使用します。
- アプリケーション用データベースロールが
NOBYPASSRLSで、テーブル所有者ではないことを確認します。 - プラグインランタイムにデータベース、S3、セッションの認証情報を渡しません。
- 信頼できる情報源から取得した
MARKETPLACE_PUBLIC_KEYを固定して使用します(.env.exampleに同梱のFIRST_PARTY_PUBLIC_KEYの既定値は、すでに公式イメージと一致しています)。 - 公開するすべてのホスト名で TLS を有効にします。
- 新しいバージョンへトラフィックを切り替える前にマイグレーションを実行します(
migrateジョブがupのたびに自動実行します)。 - バックアップを設定し、定期的に復元テストを行います。
独自イメージのビルド
Section titled “独自イメージのビルド”フォークやカスタムビルドの場合にのみ必要です。配布リポジトリには、ソースモノレポ
から 6 つのイメージをマルチアーキテクチャでビルドする GitHub Actions ワークフローと
scripts/build-and-push.sh が同梱されています。組み込みテーマ/プラグインを変更する
フォークは、自身の鍵で署名し直し、対応する公開鍵を FIRST_PARTY_PUBLIC_KEY として
すべての場所に設定する必要があります。