diff --git a/install.sh b/install.sh index 3409676..2c3c782 100644 --- a/install.sh +++ b/install.sh @@ -1052,7 +1052,19 @@ if [[ -n $MENU_PROFILES ]]; then xiaoya-control) profile_service=xiaoya-control;; *) die "未知小雅 profile:$profile";; esac - run_logged "${COMPOSE[@]}" --profile "$profile" --project-directory "$INSTALL_DIR" --env-file "$INSTALL_DIR/.env" -f "$INSTALL_DIR/compose.yaml" up -d --no-deps "$profile_service" || die "小雅 profile 启动失败:$profile" + if [[ $profile == xiaoya ]]; then + printf '正在创建并启动小雅容器:%s\n' "$XIAOYA_CONTAINER" + else + printf '正在创建并启动小雅控制器:xymedia-controller\n' + fi + if ! run_logged "${COMPOSE[@]}" --profile "$profile" --project-directory "$INSTALL_DIR" --env-file "$INSTALL_DIR/.env" -f "$INSTALL_DIR/compose.yaml" up -d --no-deps "$profile_service"; then + die "小雅 profile 启动失败:$profile" + fi + if [[ $profile == xiaoya ]]; then + printf '小雅容器已启动:%s\n' "$XIAOYA_CONTAINER" + else + printf '小雅控制器已启动:xymedia-controller\n' + fi done if [[ $MENU_PROFILES == *xiaoya-control* ]]; then controller_state=$(docker inspect --format '{{.State.Status}}' xymedia-controller 2>>"$INSTALL_LOG" || true) @@ -1181,7 +1193,7 @@ printf '数据库初始化完成\n' printf '数据库初始化完成\n' >>"$INSTALL_LOG" if [[ $MENU_PROFILES == *xiaoya-control* ]]; then printf '本机小雅控制器连接信息:\n' - print_controller_info + print_controller_info || printf '控制器连接信息暂时不可读取,安装完成后可通过菜单 6 查看。\n' fi progress '启动 XyMediaVault 服务' set +e @@ -1220,11 +1232,20 @@ wait_for_app_health() { done } wait_for_app_health || die 'XyMediaVault 健康检查被中断,安装未完成' +bootstrap_local_controller() { + [[ $MENU_PROFILES == *xiaoya-control* ]] || return 0 + (( REMOTE_MODE == 0 )) || return 0 + printf '正在将本机小雅 Controller 同步到管理平台数据库...\n' + if ! run_visible_logged docker exec xymedia-app /releases/current/bin/xymediavault bootstrap-controller --config /app/config.yaml; then + die '本机小雅 Controller 数据库同步失败,安装未完成' + fi +} +bootstrap_local_controller cp "$INSTALL_LOG" "$INSTALL_DIR/install.log" 2>/dev/null || true printf '\033[2K\r[%d/%d] 安装完成:XyMediaVault 已就绪\n' "$TOTAL_STEPS" "$TOTAL_STEPS" printf '管理地址:http://127.0.0.1:%s\n' "$API_PORT" if [[ $MENU_PROFILES == *xiaoya-control* ]]; then - print_controller_info + print_controller_info || printf '控制器连接信息暂时不可读取,请安装完成后通过菜单 6 查看。\n' fi if (( LOCAL_DB )); then print_database_info