.PHONY: help setup start stop restart logs logs-api logs-worker shell db-init db-migrate clean test help: @echo "BtToxin Pipeline - 单机部署" @echo "" @echo " make setup - 初始化环境" @echo " make start - 启动所有服务" @echo " make stop - 停止所有服务" @echo " make restart - 重启服务" @echo " make logs - 查看日志" @echo " make logs-api - 查看 API 日志" @echo " make logs-worker - 查看 Worker 日志" @echo " make shell - 进入 API 容器" @echo " make db-init - 初始化数据库" @echo " make db-migrate - 运行数据库迁移" @echo " make clean - 清理数据" @echo " make test - 运行测试" setup: @echo "=== 初始化环境 ===" cp backend/.env.example .env || true mkdir -p data/jobs data/temp docker compose -f docker/docker-compose.yml build @echo "✓ 环境初始化完成" start: @echo "=== 启动服务 ===" docker compose -f docker/docker-compose.yml up -d @echo "✓ 服务启动完成" @echo "" @echo "访问地址:" @echo " API: http://localhost:8000" @echo " API文档: http://localhost:8000/docs" @echo " Flower: http://localhost:5555" @echo " 前端: http://localhost:3000" stop: @echo "=== 停止服务 ===" docker compose -f docker/docker-compose.yml down @echo "✓ 服务已停止" restart: @echo "=== 重启服务 ===" docker compose -f docker/docker-compose.yml restart @echo "✓ 服务已重启" logs: docker compose -f docker/docker-compose.yml logs -f logs-api: docker compose -f docker/docker-compose.yml logs -f api logs-worker: docker compose -f docker/docker-compose.yml logs -f worker shell: docker compose -f docker/docker-compose.yml exec api /bin/bash || docker compose -f docker/docker-compose.yml exec api /bin/sh db-init: @echo "=== 初始化数据库 ===" docker compose -f docker/docker-compose.yml exec api python -c "from app.core.database import init_db; init_db()" @echo "✓ 数据库初始化完成" db-migrate: @echo "=== 运行数据库迁移 ===" docker compose -f docker/docker-compose.yml exec api alembic upgrade head @echo "✓ 迁移完成" clean: @echo "=== 清理数据 ===" docker compose -f docker/docker-compose.yml down -v rm -rf data/jobs/* data/temp/* @echo "✓ 清理完成" test: @echo "=== 运行测试 ===" docker compose exec api pytest || (cd backend && pytest) @echo "✓ 测试完成"