66 lines
2.1 KiB
Bash
66 lines
2.1 KiB
Bash
|
|
#!/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 secrets:bash $SCRIPT_DIR/create-secrets.sh"
|
|||
|
|
echo " 2. 构建镜像后启动 datahub-frontend.service(容器启动时会自动注入此 URL)"
|
|||
|
|
echo " 3. 已运行的服务若要换 IP:编辑 $FRONTEND_ENV 后 systemctl --user restart datahub-frontend.service"
|