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"
|