Files
cms-SiteForge/compose.publish-targets.example.yaml
浅念 601451f22b upgrade: adopt V8.21.3 (V8.13→8.21.3: P5 SFTP/S3, P6 multilingual, editor overhaul, enterprise hardening)
Overlay ~150 upstream items onto our V8.12 base, preserving trade-pro
theme, registry tests, and design docs. Re-applied our patch set
(discovery/env_for/blocks.css/type-mapping/theme_color/frontend entries,
test_theme_pro_v3 mods) — all anchors survived upstream evolution.

New platform enhancement (fixes upgrade-introduced regression):
multilingual.site_locale now honors settings_json.locale, plus
PUT /api/i18n/sites/{id}/locale — standalone English sites get
<html lang='en'> under the V8.15 locale-rewrite pipeline.

compose: adopt V8.21.3 (image 8.21.3-dev.1, /api/ready probes, MySQL/S3
env) with project name pinned to siteforge-v8-10 (data volumes).

Tests: 356 passed / 11 failed — all 11 confirmed pre-existing in
pristine V8.21.3 on this host (10 upstream Windows env + our build test
now green after locale fix). Patch registry updated in plan doc.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-23 12:31:03 +08:00

41 lines
2.8 KiB
YAML

# Example only: enable with docker compose -f compose.yaml -f compose.publish-targets.example.yaml up -d --build
# Web receives metadata/config; private keys and IAM credentials are used ONLY by worker.
services:
siteforge:
environment:
SITEFORGE_DEPLOY_STAGING_TYPE: sftp
SITEFORGE_DEPLOY_STAGING_HOST: ${SITEFORGE_STAGING_SFTP_HOST:?Provide authorized host}
SITEFORGE_DEPLOY_STAGING_PORT: "${SITEFORGE_STAGING_SFTP_PORT:-22}"
SITEFORGE_DEPLOY_STAGING_USERNAME: ${SITEFORGE_STAGING_SFTP_USER:?Provide publisher account}
SITEFORGE_DEPLOY_STAGING_REMOTE_ROOT: ${SITEFORGE_STAGING_REMOTE_ROOT:-/srv/siteforge/sites}
SITEFORGE_DEPLOY_STAGING_KNOWN_HOSTS_FILE: /run/secrets/siteforge_known_hosts
SITEFORGE_DEPLOY_STAGING_SSH_KEY_FILE: /run/secrets/siteforge_publish_key
SITEFORGE_DEPLOY_STAGING_PUBLIC_URL: ${SITEFORGE_STAGING_PUBLIC_URL:?Set HTTPS public site URL}
SITEFORGE_DEPLOY_PRODUCTION_TYPE: s3
SITEFORGE_DEPLOY_PRODUCTION_BUCKET: ${SITEFORGE_PRODUCTION_S3_BUCKET:?Set bucket}
SITEFORGE_DEPLOY_PRODUCTION_REGION: ${SITEFORGE_PRODUCTION_S3_REGION:?Set AWS region}
SITEFORGE_DEPLOY_PRODUCTION_PREFIX: ${SITEFORGE_PRODUCTION_S3_PREFIX:-siteforge}
SITEFORGE_DEPLOY_PRODUCTION_POINTER_AWARE: "1"
SITEFORGE_DEPLOY_PRODUCTION_PUBLIC_URL: ${SITEFORGE_PRODUCTION_PUBLIC_URL:?Set pointer-aware gateway HTTPS URL}
worker:
environment:
SITEFORGE_DEPLOY_STAGING_TYPE: sftp
SITEFORGE_DEPLOY_STAGING_HOST: ${SITEFORGE_STAGING_SFTP_HOST:?Provide authorized host}
SITEFORGE_DEPLOY_STAGING_PORT: "${SITEFORGE_STAGING_SFTP_PORT:-22}"
SITEFORGE_DEPLOY_STAGING_USERNAME: ${SITEFORGE_STAGING_SFTP_USER:?Provide publisher account}
SITEFORGE_DEPLOY_STAGING_REMOTE_ROOT: ${SITEFORGE_STAGING_REMOTE_ROOT:-/srv/siteforge/sites}
SITEFORGE_DEPLOY_STAGING_KNOWN_HOSTS_FILE: /run/secrets/siteforge_known_hosts
SITEFORGE_DEPLOY_STAGING_SSH_KEY_FILE: /run/secrets/siteforge_publish_key
SITEFORGE_DEPLOY_STAGING_PUBLIC_URL: ${SITEFORGE_STAGING_PUBLIC_URL:?Set HTTPS public site URL}
SITEFORGE_DEPLOY_PRODUCTION_TYPE: s3
SITEFORGE_DEPLOY_PRODUCTION_BUCKET: ${SITEFORGE_PRODUCTION_S3_BUCKET:?Set bucket}
SITEFORGE_DEPLOY_PRODUCTION_REGION: ${SITEFORGE_PRODUCTION_S3_REGION:?Set AWS region}
SITEFORGE_DEPLOY_PRODUCTION_PREFIX: ${SITEFORGE_PRODUCTION_S3_PREFIX:-siteforge}
SITEFORGE_DEPLOY_PRODUCTION_POINTER_AWARE: "1"
SITEFORGE_DEPLOY_PRODUCTION_PUBLIC_URL: ${SITEFORGE_PRODUCTION_PUBLIC_URL:?Set pointer-aware gateway HTTPS URL}
AWS_REGION: ${SITEFORGE_PRODUCTION_S3_REGION:?Set AWS region}
# Prefer IAM instance/service role; never put AWS static keys into .env.
volumes:
- ./secrets/publish_known_hosts:/run/secrets/siteforge_known_hosts:ro
- ./secrets/publish_key:/run/secrets/siteforge_publish_key:ro