Issues found during P5-01 acceptance testing on WSL2:
configure.sh: sync MySQL/Redis host/port into config/xuqm.env (was
only writing to .env, leaving xuqm.env with hardcoded 127.0.0.1).
install.sh: add docker login step before compose up; reads
REGISTRY_USER/REGISTRY_PASSWORD from .env; --skip-registry-login
flag for offline bundles or pre-authenticated environments.
healthcheck.sh: move docs-site from required to optional container
list (image may not exist in all ACR namespaces); add localhost
fallback URL for actuator/health when CONSOLE_DOMAIN is not set;
add PRIVATE mode verification via /api/private/deployment/status.
scripts/migrate-tenant.sh (new): migrates a single tenant from the
public platform MySQL to the private deployment. Exports t_tenant,
t_app, t_feature_service with explicit column names to survive
schema-order differences; supports --dry-run, --reset-password,
managed/external destination MySQL, and restarts tenant-service
after applying.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>