chore: CRM-NEW baseline

This commit is contained in:
wangliang
2026-10-23 10:35:28 +08:00
commit aa499f6dbf
111 changed files with 15126 additions and 0 deletions
+74
View File
@@ -0,0 +1,74 @@
#!/usr/bin/env bash
# 测试服 JSON-RPC 端口外网被封:在本机建 SSH 隧道,供 crm-new 的 bridge 访问。
#
# 默认只启动隧道并打印 .env 需要的 4 行配置;
# 加 --apply 会自动更新 .env 里的 RPC URL 并重建 bridge。
set -euo pipefail
cd "$(dirname "${BASH_SOURCE[0]}")/.."
APPLY=0
[[ "${1:-}" == "--apply" ]] && APPLY=1
NET=$(docker network ls --format '{{.Name}}' | grep -E '^crm-new.*_default$' | head -1 || true)
if [[ -z "$NET" ]]; then
echo "找不到 crm-new 的 compose 网络,请先启动 stack(docker compose up -d)" >&2
exit 1
fi
GW=$(docker network inspect "$NET" -f '{{range .IPAM.Config}}{{.Gateway}}{{end}}')
PORTS=(24503 24505 24506 24509)
ARGS=()
for p in "${PORTS[@]}"; do
if ss -ltn "sport = :$p" 2>/dev/null | grep -q "$GW"; then
echo "端口 $p 已在 $GW 监听,跳过"
else
ARGS+=("-L" "$GW:$p:127.0.0.1:$p")
fi
done
if [[ ${#ARGS[@]} -gt 0 ]]; then
ssh -F ~/.ssh/config -fN \
-o ExitOnForwardFailure=yes \
-o ServerAliveInterval=30 \
-o ServerAliveCountMax=3 \
"${ARGS[@]}" yw-dev
echo "隧道已建立:$GW -> yw-dev 127.0.0.1"
fi
cat <<EOF
bridge 需要以下配置(当前网关 $GW):
RECOMMEND_URL=jsonrpc://$GW:24503
ORDER_API_URL=jsonrpc://$GW:24505
MEMBER_RPC_URL=jsonrpc://$GW:24506
INVENTORY_API_URL=jsonrpc://$GW:24509
EOF
if [[ $APPLY -eq 1 ]]; then
python3 - "$GW" <<'PY'
import pathlib, sys
gw = sys.argv[1]
p = pathlib.Path('.env')
lines = p.read_text().split('\n')
mapping = {
'RECOMMEND_URL': f'jsonrpc://{gw}:24503',
'ORDER_API_URL': f'jsonrpc://{gw}:24505',
'MEMBER_RPC_URL': f'jsonrpc://{gw}:24506',
'INVENTORY_API_URL': f'jsonrpc://{gw}:24509',
}
for k, v in mapping.items():
for i, line in enumerate(lines):
if line.startswith(k + '='):
lines[i] = f'{k}={v}'
break
else:
lines.append(f'{k}={v}')
p.write_text('\n'.join(lines))
print('已更新 .env')
PY
docker compose up -d --force-recreate bridge
echo "已重建 bridge"
fi
echo
echo "注意:网络重建/机器重启后网关 IP 可能变化,重跑本脚本即可。"