Files
datahub/deploy/podman/scripts/configure-env.sh
T

66 lines
2.1 KiB
Bash
Raw Normal View History

2026-05-11 10:41:36 +08:00
#!/usr/bin/env bash
# 交互式生成 env 文件
# 用法:bash configure-env.sh
set -euo pipefail
CONF_DIR=/var/container/data/datahub/env
SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
REPO_ROOT=$(cd "$SCRIPT_DIR/../../.." && pwd)
if [ ! -d "$CONF_DIR" ]; then
echo "[!] $CONF_DIR 不存在,请先执行: bash $SCRIPT_DIR/setup-data-dirs.sh" >&2
exit 1
fi
# ---------- 1. backend env ----------
BACKEND_ENV="$CONF_DIR/datahub-backend.env"
BACKEND_TPL="$REPO_ROOT/deploy/podman/env/datahub-backend.env.example"
if [ -f "$BACKEND_ENV" ]; then
echo "[=] $BACKEND_ENV 已存在,跳过"
else
cp "$BACKEND_TPL" "$BACKEND_ENV"
chmod 600 "$BACKEND_ENV"
echo "[+] 已生成 $BACKEND_ENV(如需调整 TOOLS_HOST 等参数请手动编辑)"
fi
# ---------- 2. frontend env:交互式询问 API_BASE_URL ----------
FRONTEND_ENV="$CONF_DIR/datahub-frontend.env"
CURRENT_VAL=""
if [ -f "$FRONTEND_ENV" ]; then
CURRENT_VAL=$(grep -E "^API_BASE_URL=" "$FRONTEND_ENV" | sed 's/^API_BASE_URL=//')
echo "[=] 当前 $FRONTEND_ENV 中 API_BASE_URL=$CURRENT_VAL"
fi
DEFAULT_IP=$(hostname -I 2>/dev/null | awk '{print $1}')
DEFAULT_URL="http://${DEFAULT_IP:-127.0.0.1}:9501"
SUGGEST="${CURRENT_VAL:-$DEFAULT_URL}"
echo
echo "请输入浏览器访问后端 API 的完整地址。"
echo "示例:http://192.168.1.100:9501 或 https://api.example.com"
read -rp "API_BASE_URL [$SUGGEST]: " INPUT
API_BASE_URL="${INPUT:-$SUGGEST}"
if ! [[ "$API_BASE_URL" =~ ^https?:// ]]; then
echo "[!] 地址必须以 http:// 或 https:// 开头" >&2
exit 1
fi
cat > "$FRONTEND_ENV" <<EOF
# 由 configure-env.sh 生成于 $(date -Iseconds)
API_BASE_URL=$API_BASE_URL
EOF
chmod 600 "$FRONTEND_ENV"
echo
echo "[+] 已写入 $FRONTEND_ENV"
echo " API_BASE_URL=$API_BASE_URL"
echo
echo "下一步:"
echo " 1. 创建/更新 podman secretsbash $SCRIPT_DIR/create-secrets.sh"
echo " 2. 构建镜像后启动 datahub-frontend.service(容器启动时会自动注入此 URL)"
echo " 3. 已运行的服务若要换 IP:编辑 $FRONTEND_ENV 后 systemctl --user restart datahub-frontend.service"