release: bump version to 0.63.0
Some checks failed
ci / backend (push) Has been cancelled
ci / frontend (push) Has been cancelled
ci / delivery (push) Has been cancelled
release / images (push) Has been cancelled

This commit is contained in:
linkong
2026-05-21 01:46:43 +08:00
parent fbca381512
commit 085bdf9a80
8 changed files with 125 additions and 6 deletions

101
planet.sh
View File

@@ -3242,6 +3242,101 @@ stop() {
log_success "已停止"
}
confirm_destroy() {
local answer=""
clear_wait_spinner
log_warn "即将执行破坏性清理"
log_note "destroy 会停止服务并删除 Planet 的 Docker 容器、卷、镜像和本地编译/运行状态。"
log_note "这会清空本地 PostgreSQL/Redis 数据卷;源码和现有 .env 配置文件会保留。"
printf "%b请输入 Y 确认N 取消 [Y/N]: %b" "$YELLOW" "$NC"
read -r answer
case "$answer" in
Y|y)
return 0
;;
*)
log_warn "已取消 destroy"
return 1
;;
esac
}
compose_destroy() {
if compose_available; then
docker compose down --volumes --rmi all --remove-orphans >/dev/null 2>&1 || true
return 0
fi
if compose_v1_available; then
docker-compose down --volumes --rmi all --remove-orphans >/dev/null 2>&1 || true
return 0
fi
log_warn "未检测到 Docker Compose跳过 compose 级清理"
}
remove_planet_docker_state() {
local container_ids=""
local volume_names=""
compose_destroy
container_ids="$(docker ps -aq --filter "name=^/planet_" 2>/dev/null || true)"
if [ -n "$container_ids" ]; then
printf "%s\n" "$container_ids" | awk '/^[0-9a-f]{12,64}$/' | xargs -r docker rm -f >/dev/null 2>&1 || true
fi
docker image rm "$AI_PROVIDER_IMAGE_NAME" postgres:15 redis:7-alpine >/dev/null 2>&1 || true
volume_names="$(docker volume ls -q --filter label=com.docker.compose.project=planet 2>/dev/null || true)"
if [ -n "$volume_names" ]; then
printf "%s\n" "$volume_names" | xargs -r docker volume rm -f >/dev/null 2>&1 || true
fi
docker volume rm -f planet_postgres_data planet_redis_data postgres_data redis_data >/dev/null 2>&1 || true
}
remove_planet_build_state() {
rm -rf \
"$SCRIPT_DIR/.venv" \
"$SCRIPT_DIR/.uv" \
"$SCRIPT_DIR/.uv-cache" \
"$SCRIPT_DIR/.pytest_cache" \
"$SCRIPT_DIR/.ruff_cache" \
"$SCRIPT_DIR/node_modules" \
"$SCRIPT_DIR/dist" \
"$SCRIPT_DIR/frontend/node_modules" \
"$SCRIPT_DIR/frontend/dist" \
"$SCRIPT_DIR/frontend/dist-ssr" \
"$PLANET_STATE_DIR" \
"$PLANET_CACHE_DIR"
}
destroy() {
confirm_destroy || return 0
log_warn "开始 destroy"
stop_backend_service
stop_ai_provider_service
stop_frontend_service
stop_motion_agent_service
start_wait_session "清理 Docker 状态"
remove_planet_docker_state
stop_wait_session
log_success "Docker 容器、卷和镜像已清理"
start_wait_session "清理本地编译状态"
remove_planet_build_state
stop_wait_session
log_success "本地编译和运行状态已清理"
log_success "destroy 完成"
log_note "已保留源码和 .env 配置文件;重新开始可执行 ./planet.sh init"
}
stop_local_services_for_restart() {
log_warn "正在停止本地服务"
stop_backend_service
@@ -3428,6 +3523,9 @@ case "$1" in
stop)
stop
;;
destroy)
destroy
;;
restart)
shift
restart "$@"
@@ -3442,11 +3540,12 @@ case "$1" in
log "$2"
;;
*)
log_error "用法: ./planet.sh {init|start|stop|restart|createuser|health|log}"
log_error "用法: ./planet.sh {init|start|stop|destroy|restart|createuser|health|log}"
log_note "全局参数: -v, --verbose 在状态提示之间增量输出命令日志"
log_note "init 首次初始化空项目: 同步 uv/bun 依赖、生成缺失 env、启动数据库并写入默认数据"
log_note "start 启动服务,可选: -b <后端端口> -f <前端端口> -a <AI Provider 端口> -m/--motion-agent --motion-agent-port <端口> --motion-agent-camera-indexes 0,1 --motion-agent-camera-urls rtsp://... --motion-agent-dry-run --allow-lan --verbose"
log_note "stop 停止服务"
log_note "destroy 删除 Planet 容器、卷、镜像和本地编译状态,执行前需要输入 Y 确认"
log_note "restart 重启服务,可选: -b [后端端口] -f [前端端口] -a [AI Provider 端口] -m [Motion Agent] -d --allow-lan --verbose"
log_note "createuser 交互创建用户"
log_note "health 检查健康状态"