zzz / STARTUP_TROUBLESHOOTING.md
hern0425's picture
Upload 13 files
8666ff1 verified

Flow2API HuggingFace Spaces 启动问题诊断和解决方案

🐛 问题描述

应用在 HuggingFace Spaces 上启动后卡在:

===== Application Startup at 2025-11-24 17:30:58 =====

🔍 可能的原因分析

1. 数据库初始化阻塞

  • SQLite 数据库创建时的权限问题
  • 异步数据库操作在容器环境中被阻塞
  • 数据库迁移过程中的死锁

2. 异步操作超时

  • 应用启动时的并发初始化操作
  • 资源竞争导致的阻塞
  • HuggingFace Spaces 的资源限制

3. 文件系统权限问题

  • 日志文件写入权限
  • 数据目录创建权限
  • 配置文件读取权限

4. 网络��接问题

  • Google API 连接检查
  • 代理设置配置
  • 网络超时设置

🔧 提供的解决方案

方案 1:增强调试版 Dockerfile

# 已创建 Dockerfile,包含:
- 详细的启动调试信息
- 文件权限修复
- 更长的健康检查启动时间(120s)
- 调试启动脚本

方案 2:简化版 Dockerfile

# 已创建 Dockerfile.simple:
- 最大权限设置(777)
- 使用 root 用户运行
- 180秒启动时间
- 备用启动脚本

方案 3:诊断脚本

# 已创建 start_simple.py:
- 环境变量检查
- 文件权限验证
- 数据库连接测试
- 简单的备用服务器

🚀 部署步骤

第一步:尝试增强版

  1. 推送当前的 Dockerfile
  2. 配置环境变量
    FLOW2API_DEBUG_ENABLED=true
    FLOW2API_DEBUG_LOG_REQUESTS=false
    FLOW2API_DEBUG_LOG_RESPONSES=false
    
  3. 查看启动日志,应该看到详细的调试信息

第二步:如果仍然卡住,使用简化版

  1. 重命名文件
    mv Dockerfile Dockerfile.backup
    mv Dockerfile.simple Dockerfile
    
  2. 重新部署
  3. 监控启动过程

第三步:手动调试

如果自动启动仍然失败,可以:

  1. 使用 start_simple.py 作为主启动脚本
  2. 通过 HuggingFace Spaces 终端(如果可用)手动执行:
    cd /app
    python start_simple.py
    

📋 诊断检查清单

环境变量确认

在 HuggingFace Spaces 设置中确认:

  • FLOW2API_HOST=0.0.0.0
  • FLOW2API_PORT=7860
  • PYTHONUNBUFFERED=1
  • FLOW2API_DEBUG_ENABLED=false(生产环境)或 true(调试)

文件权限检查

查看启动日志中是否显示:

  • File permissions fixed
  • 用户信息正确
  • 日志文件权限 666777

数据库初始化检查

查看日志中的数据库相关消息:

  • Database initialized
  • Total tokens: 0
  • 没有 SQLite 错误

服务状态检查

部署后检查:

  • 健康检查通过
  • 根路由响应:curl https://your-space.hf.space/
  • API 路由响应:curl https://your-space.hf.space/v1/models

🛠️ 高级调试技巧

启用详细日志

# 在环境变量中设置
FLOW2API_DEBUG_ENABLED=true
PYTHONUNBUFFERED=1

检查容器内部

如果可以访问容器终端:

# 检查进程
ps aux

# 检查端口
netstat -tlnp

# 检查文件
ls -la /app/

# 手动测试数据库
python -c "import aiosqlite; print('OK')"

替代启动方法

如果主启动脚本失败,可以:

  1. 直接使用 Uvicorn

    uvicorn src.main:app --host 0.0.0.0 --port 7860
    
  2. 禁用某些功能

    # 通过环境变量禁用缓存和调试
    FLOW2API_CACHE_ENABLED=false
    FLOW2API_DEBUG_ENABLED=false
    

🔄 迁移到生产配置

一旦应用成功启动,建议:

  1. 禁用调试

    FLOW2API_DEBUG_ENABLED=false
    FLOW2API_DEBUG_LOG_REQUESTS=false
    FLOW2API_DEBUG_LOG_RESPONSES=false
    
  2. 优化性能

    FLOW2API_IMAGE_TIMEOUT=600
    FLOW2API_VIDEO_TIMEOUT=1800
    FLOW2API_CACHE_ENABLED=true
    
  3. 安全配置

    # 更改默认密码
    FLOW2API_ADMIN_PASSWORD=your-secure-password
    # 配置真实的 API 密钥
    FLOW2API_API_KEY=your-google-api-key
    

📞 故障排除联系

如果问题仍然存在:

  1. 查看详细日志:HuggingFace Spaces 构建日志
  2. 尝试本地测试:使用相同配置在本地运行
  3. 报告问题:在 GitHub 上创建 issue 并提供:
    • 完整的启动日志
    • 环境变量配置
    • 使用的是哪个 Dockerfile 版本

📚 相关资源


目标:让 Flow2API 在 HuggingFace Spaces 上稳定运行,提供完整的图像和视频生成 API 服务。