# PDF2PPT 环境变量示例 # Docker 对外端口 WEB_PORT=3000 # API 默认只绑定宿主机回环地址 API_BIND_HOST=127.0.0.1 API_PORT=8000 # Worker 与任务目录 # 注意:config.py 中默认值为 data/jobs(相对路径,解析到 api/data/jobs)。 # Docker 部署时需覆盖为绝对路径。 JOB_ROOT_DIR=/app/data/jobs WORKER_CONCURRENCY=1 # 单服务托管模式下,是否在 API 容器内同时拉起 worker。 # - 0: 不启动独立 worker,若 REDIS_URL=memory:// 则 API 内联执行任务 # - 1+: 在同一个容器里额外启动 RQ worker 进程,适合接托管 Redis EMBEDDED_WORKER_CONCURRENCY=0 # 同源部署默认值 NEXT_PUBLIC_API_URL= INTERNAL_API_ORIGIN=http://api:8000 # Web 访问密码。上线后请尽快改掉默认值。 # 生成方法: python3 -c "import secrets; print(secrets.token_urlsafe(16))" WEB_ACCESS_PASSWORD= # 上传限制 MAX_FILE_MB=100 MAX_PAGES=200 # 任务保留与心跳 JOB_TTL_MINUTES=1440 JOB_CLEANUP_INTERVAL_MINUTES=15 # 长时间阻塞阶段的保活间隔,单位秒 JOB_KEEPALIVE_INTERVAL_S=15 # Redis 连接 REDIS_URL=redis://redis:6379/0 # Render / Zeabur 最简测试可改成: # REDIS_URL=memory:// # 可选:默认远程 OCR 配置 SILICONFLOW_API_KEY= SILICONFLOW_BASE_URL=https://api.siliconflow.cn/v1 # 推荐模型示例: # - Pro/deepseek-ai/deepseek-ocr # - PaddlePaddle/PaddleOCR-VL-1.5 SILICONFLOW_MODEL=deepseek-ai/deepseek-ocr # OCR 超时保护 OCR_PAGE_TIMEOUT_S=300 OCR_MAX_CONSECUTIVE_TIMEOUTS=2 OCR_TOTAL_TIMEOUT_S=3600 # 可选:单次 AI OCR 请求超时,单位秒 OCR_AI_REQUEST_TIMEOUT_S=25 # 可选:按模型单独覆盖超时,适合较慢的视觉模型 # OCR_AI_REQUEST_TIMEOUT_S_QWEN=90 # OCR_AI_REQUEST_TIMEOUT_S_DEEPSEEK_OCR=45 # OCR_AI_REQUEST_TIMEOUT_S_PADDLE_VL=60 # 可选:PaddleOCR-VL 部署参数,实际在 docker-compose.yml 中传入 # OCR_PADDLE_VL_DOCPARSER_USE_QUEUES=1 # OCR_PADDLE_VL_DOCPARSER_MAX_SIDE_PX=2200 # 可选:容器启动时预热 PP-DocLayoutV3。 # docker-compose 默认会在 worker 上启用,不写通常也会预热。 # OCR_PADDLE_LAYOUT_PREWARM=1 # OCR_PADDLE_LAYOUT_PREWARM_TARGET=worker # 单服务托管模式如果要在 API + 内嵌 worker 都预热,可改成 all。 # OCR_PADDLE_LAYOUT_PREWARM_TARGET=all # 可选:容器启动时预热 PaddleOCR-VL。 # 如果你已经配置好 PaddleOCR-VL 模型和有效 key,VPS 上建议开启。 OCR_PADDLE_VL_PREWARM=1 OCR_PADDLE_VL_PREWARM_TARGET=worker # 直接公开 API 时的 CORS 配置 # 同源部署一般不用改这里。 # 逗号分隔,例如 http://localhost:3000,http://127.0.0.1:3000,https://your-domain.com CORS_ALLOW_ORIGINS=http://localhost:3000,http://127.0.0.1:3000 # 可选正则,例如 https://.*\\.your-domain\\.com CORS_ALLOW_ORIGIN_REGEX= # 可选:直连 /api/v1/* 时要求 Bearer。 # 留空表示关闭。走同源 Web 代理时,只有站点解锁后才会自动转发。 API_BEARER_TOKEN= # LinuxDo OAuth 登录(可选) # 在 https://connect.linux.do/ 注册应用获取 LINUXDO_CLIENT_ID= LINUXDO_CLIENT_SECRET= LINUXDO_REDIRECT_URI=http://localhost:3000/auth/callback # JWT 密钥(必填,生产环境请改为随机字符串) # 生成方法: python3 -c "import secrets; print(secrets.token_urlsafe(32))" JWT_SECRET= # Cookie secure 标志(HTTPS 部署设为 true,本地 HTTP 开发设为 false) # 注意:config.py 中默认值为 True。本地开发时请显式设为 false。 COOKIE_SECURE=false # SQLite 数据库路径(相对于 api/ 目录) SQLITE_PATH=data/pdf2ppt.db