构建部署 · 管理员登录 · 账号 / 密钥 / 任务管理 · 故障排查 · 安全规范
管理面板:http://localhost:9995/ (根路径,不是 /web)顶部四个标签页 + 右上角控制区,登录后默认落在「仪表盘」。
compose 已预置 PyPI 镜像配置,一条命令完成构建 + 启动。
| 镜像源 | URL |
|---|---|
| 默认 华为云 | https://repo.huaweicloud.com/repository/pypi/simple/ |
| 阿里云 | https://mirrors.aliyun.com/pypi/simple/ |
| 腾讯云 | https://mirrors.cloud.tencent.com/pypi/simple/ |
compose 使用 ${PIP_INDEX_URL:-默认值} 语法:shell 里设了就用你的,没设走默认华为云。patchright 的 Chromium 已固定走 npmmirror.com/mirrors/playwright 国内节点。
| 命令 | 用途 |
|---|---|
docker compose up -d | 只启动不重建镜像(代码没变时快很多) |
docker compose ps | 查状态,STATUS = healthy 才算真正可用(约 20~30 秒) |
docker compose logs -f | 实时日志 |
docker compose down | 停止并删除容器 |
| 部署问题 | 解决 |
|---|---|
| 容器不断重启 | docker compose logs 看报错,多半是依赖下载没走完 |
/health 连不上 | 等 STATUS 变 healthy |
| 面板白屏 | 镜像里 web/index.html 没更新 → up -d --build 强制重建 |
| pip 报 403 / timeout | 换另一个 PyPI 镜像(改 PIP_INDEX_URL) |
| patchright 下载 Chromium 超时 | 已配 npmmirror,应自动从国内节点拉 |
独立登录页 + 无状态认证:密码存浏览器 localStorage,服务端不维护会话。
/ 会自动跳到登录页;已登录再开 /login 会跳回面板| 地址 | 说明 |
|---|---|
/login | 登录页(推荐) |
/login.html | 同一页面 |
/ | 面板主页;未登录自动跳 /login |
X-Admin-Key 请求头 → 别人用你的浏览器打开 9995 可直接进面板,用完请点「退出」修改密码:改 compose 的 DOLA_ADMIN_KEY → docker compose up -d 重启 → 浏览器旧密码失效,重新登录。无独立改密页面。未配置 Key 时为无密码模式,直接进面板。
| 登录问题 | 原因 | 解决 |
|---|---|---|
| 提示「管理员密码错误」 | 输错 / 改了密码没重启 | 核对 DOLA_ADMIN_KEY,up -d |
| 登录后又回登录页 | localStorage 被禁用 | 换浏览器或无痕窗口 |
| 输对了进不去 | 旧密码缓存 | 访问 /login 重登,或清站点数据 |
| 打开面板没让登录 | 没配 Key | 需要密码就在 compose 加上并重启 |
| /login 显示 404 | 镜像没更新 | up -d --build 重建 |
每个账号 = 一个 dola.com 登录态,所有视频任务都跑在账号的浏览器 profile 里。
| 列 | 含义 |
|---|---|
| ok | 登录态有效性:✅ 有效 / ❌ sessionid 过期 |
| available | 当前能否接任务 |
| daily_left | 今日剩余视频额度(日本时间午夜重置) |
| credit | Dola 账户积分余额 |
| scheduling | 是否参与调度(开关;关掉 = 不接新任务,跑着的不受影响,适合临时维护) |
账号过期(ok ❌):点行内 Verify 重走 OAuth;或 Delete + 重新 Add。
添加卡住(一直 running):等 3 分钟,超时自动标失败 → Retry 或 Delete + Add。
App 本身不显示密钥——密钥藏在绑定二维码背后。三种方法,优先方法一。
myaccount.google.com/securityotpauth://...?secret= 那段Google requested 2FA, but no TOTP secret was provided → 再去拿密钥重跑
调用方(业务后端 / 脚本)带 Key 才能调 /v1/videos/generations。
sk-32位hex| 行内操作 | 说明 |
|---|---|
| Enabled 开关 | 临时禁用 / 启用(生产 Key 慎关,下游立刻 401) |
| Daily / Concurrency / Durations | 行内直接改 |
| Expires At | 行内直接改 |
| Delete | 彻底删除,不可恢复;在跑的任务跑完,新请求立刻 401 |
默认最近 50 条,按创建时间倒序。
| 场景 | 操作 |
|---|---|
| 失败任务重跑 | 有 Retry 按钮 → 同参数重新提交;没有 Retry = 无法重试(如 prompt 问题),需从 API 重新发请求 |
| 看已完成视频 | completed 状态里 URL 直接点开:http://localhost:9995/videos/xxx.mp4 |
| 一直 queued 不跑 | 账号全忙或额度用完 → 看 Accounts 的 available 和 daily_left |
| "no account in pool" | 一个账号都没加 → 先 Add Account |
先查容器状态(healthy),再按症状定位。
| 症状 | 原因 | 解决 |
|---|---|---|
| 面板白屏 / 打不开 | 容器没起来 | docker compose ps,STATUS 必须 healthy |
| 登录弹窗关不掉 | DOLA_ADMIN_KEY 没设或设错 | 检查 compose 环境变量,up -d |
| Add Account 一直 running | Google OAuth 卡住 | 等 3 分钟,超时标失败 → Retry 或 Delete + Add |
| 账号 ok ❌ | sessionid 过期 | Accounts Tab 点 Verify 重走登录 |
| Keys 创建后没看到 Key | 弹窗没保存 | 无法找回,只能 New 一个新的 |
| 任务一直 queued | 账号忙 / 额度用完 | 看 Accounts 的 available / daily_left |
| 报 "no account in pool" | 没加账号 | Accounts Tab 先 Add Account |
DOLA_ADMIN_KEY