6a23e79f4c
dev deploys to /opt/dukang-staging (819x, *-test domains); main deploys to production. Staging uses full Mock with shared WeChat app ids. Co-authored-by: Cursor <cursoragent@cursor.com>
47 lines
1.9 KiB
Bash
47 lines
1.9 KiB
Bash
#!/usr/bin/env bash
|
||
# 在生产机上初始化 Staging 目录(同机双栈,一次性)
|
||
# 用法(SSH 到服务器后):
|
||
# APP_ROOT=/opt/dukang bash /opt/dukang/deploy/bootstrap-staging.sh
|
||
# 或本机:
|
||
# ssh root@host 'bash -s' < deploy/bootstrap-staging.sh
|
||
set -euo pipefail
|
||
|
||
PROD_ROOT="${PROD_ROOT:-/opt/dukang}"
|
||
STAGING_ROOT="${STAGING_ROOT:-/opt/dukang-staging}"
|
||
GIT_REMOTE_URL="${GIT_REMOTE_URL:-}"
|
||
GIT_BRANCH="${GIT_BRANCH:-dev}"
|
||
|
||
if [[ -d "$STAGING_ROOT/.git" ]]; then
|
||
echo "==> 已存在 $STAGING_ROOT,跳过 clone"
|
||
else
|
||
if [[ -z "$GIT_REMOTE_URL" ]]; then
|
||
if [[ -d "$PROD_ROOT/.git" ]]; then
|
||
GIT_REMOTE_URL="$(git -C "$PROD_ROOT" remote get-url origin)"
|
||
else
|
||
echo "错误: 请设置 GIT_REMOTE_URL,或确保 $PROD_ROOT 为 git 仓库" >&2
|
||
exit 1
|
||
fi
|
||
fi
|
||
echo "==> clone $GIT_REMOTE_URL → $STAGING_ROOT (branch $GIT_BRANCH)"
|
||
git clone --branch "$GIT_BRANCH" "$GIT_REMOTE_URL" "$STAGING_ROOT"
|
||
fi
|
||
|
||
mkdir -p "$STAGING_ROOT/server/dukang-api"
|
||
if [[ ! -f "$STAGING_ROOT/server/dukang-api/.env.staging" ]]; then
|
||
if [[ -f "$STAGING_ROOT/server/dukang-api/.env.staging.example" ]]; then
|
||
cp "$STAGING_ROOT/server/dukang-api/.env.staging.example" \
|
||
"$STAGING_ROOT/server/dukang-api/.env.staging"
|
||
echo "==> 已生成 .env.staging(请编辑 DATABASE_URL / Redis / 微信后 sync 或本机改)"
|
||
else
|
||
echo "WARN: 无 .env.staging.example,请手动创建 .env.staging"
|
||
fi
|
||
fi
|
||
|
||
echo "==> 下一步:"
|
||
echo " 1. 创建 RDS 库 dukang_staging,填好 $STAGING_ROOT/server/dukang-api/.env.staging"
|
||
echo " 2. DNS: api-test/user-test/shop-test/partner-test/admin-test.dukanghaoke.com → 本机"
|
||
echo " 3. 启用 nginx: ln -sf $STAGING_ROOT/deploy/nginx-dukang-staging.conf /etc/nginx/sites-enabled/"
|
||
echo " nginx -t && systemctl reload nginx(证书需含 *-test SAN)"
|
||
echo " 4. 本机发版: bash deploy/deploy-staging.sh -- --seed --accept-data-loss"
|
||
echo "==> bootstrap 完成"
|