🛰️ Dola Render Gateway — 面板操作指南

构建部署 · 管理员登录 · 账号 / 密钥 / 任务管理 · 故障排查 · 安全规范

管理面板:http://localhost:9995/ (根路径,不是 /web)
0

面板结构总览

顶部四个标签页 + 右上角控制区,登录后默认落在「仪表盘」。

仪表盘 Dashboard
今日完成/失败、成功率、近 7 天柱状图、每账号累计、账号总览(在线/额度/可用)
账号 Accounts
dola.com 登录态管理:添加/验证/暂停账号,查看 ok、额度、积分、调度开关
任务队列 Tasks
最近 50 条任务,按状态/账号/Key 过滤,失败重试,完成后直接看视频
API 密钥 Keys
调用方凭证:创建/禁用/限额/有效期,完整值仅创建时展示一次
ℹ️ 右上角控制区:自动刷新开关 · 刷新 按钮 · 退出 按钮。
1

构建与部署

compose 已预置 PyPI 镜像配置,一条命令完成构建 + 启动。

# 项目根目录执行
$env:BUILDKIT_PROGRESS="plain"; docker compose up -d --build

# 华为云 opencv 超时 → 换阿里云镜像
$env:PIP_INDEX_URL="https://mirrors.aliyun.com/pypi/simple/"; docker compose up -d --build
📦 持久化:Chromium profile
dola.com 登录态,重新部署不丢
./data/accounts/
🗄️ 持久化:SQLite
API 密钥 + 任务历史
./data/tasks.db
🎬 持久化:视频产物
生成的视频文件
./data/downloads/
镜像源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,应自动从国内节点拉
2

管理员登录 / 登出

独立登录页 + 无状态认证:密码存浏览器 localStorage,服务端不维护会话。

1️⃣ 访问 /login
未登录访问 / 会自动跳到登录页;已登录再开 /login 会跳回面板
→
2️⃣ 输入 DOLA_ADMIN_KEY
原样输入 compose 里的值,不带引号/空格;点「登录」或回车
→
3️⃣ 进入面板
密码存 localStorage,刷新/关标签页都不用重登
地址说明
/login登录页(推荐)
/login.html同一页面
/面板主页;未登录自动跳 /login
🚪 登出 = 「忘掉密码」
点「退出」→ 清浏览器密码 + 跳 /login,服务端没有任何调用(无 /api/admin/logout 接口)
🙈 只关浏览器 ≠ 登出
下次打开仍是登录状态
⚠️ 公共电脑风险
认证是 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 重建
3

账号管理(Accounts Tab)

每个账号 = 一个 dola.com 登录态,所有视频任务都跑在账号的浏览器 profile 里。

① Add Account点右上角 + Add Account
→
② 填表单Name(字母数字下划线)/ Google Email / Password / TOTP Secret(无 2FA 留空)
→
③ Start Login容器内 Chromium 走 Google OAuth(宿主机不可见)
→
④ 状态 ✅ oksessionid 非空 = 添加成功
列含义
ok登录态有效性:✅ 有效 / ❌ sessionid 过期
available当前能否接任务
daily_left今日剩余视频额度(日本时间午夜重置)
creditDola 账户积分余额
scheduling是否参与调度(开关;关掉 = 不接新任务,跑着的不受影响,适合临时维护)

账号过期(ok ❌):点行内 Verify 重走 OAuth;或 Delete + 重新 Add。
添加卡住(一直 running):等 3 分钟,超时自动标失败 → Retry 或 Delete + Add。

🔑 如何拿到 TOTP Secret(Google 2FA 密钥)

App 本身不显示密钥——密钥藏在绑定二维码背后。三种方法,优先方法一。

方法一:PC 端 Google 设置页(推荐)
1. 打开 myaccount.google.com/security
2. 两步验证 → Authenticator app
3. 已绑定 → 点「更改/Change」
4. 点「无法扫描条形码?」
5. 显示 base32 密钥 → 复制粘贴
方法二:从现有 App 导出
1. App 右上角 → 导出账号
2. 生成新二维码
3. 用在线 TOTP decoder 解码
4. 取 otpauth://...?secret= 那段
⚠️ 导出 = 旧 App 里该账号消失
方法三:留空自动跳过
先试留空。Google 信任度高时会跳过 2FA。

只有面板报 Google requested 2FA, but no TOTP secret was provided → 再去拿密钥重跑
🚨 密钥安全:典型 26~40 位 base32(A-Z, 2-7),粘贴时不用管空格/大小写(自动清理转大写)。这个密钥 = 你的 Google 账户后门——不要截图、不要发群里。
4

API Key 管理(Keys Tab)

调用方(业务后端 / 脚本)带 Key 才能调 /v1/videos/generations。

① New KeyKeys Tab → + New Key
→
② 配置Key Name / Daily Limit(0=不限)/ Concurrency(0=不限)/ 允许时长(10s/15s/30s)/ Expires At(空=永久)
→
③ Create生成 sk-32位hex
→
④ 立刻复制!完整值只显示一次,关掉弹窗后只见前后各 4 位
行内操作说明
Enabled 开关临时禁用 / 启用(生产 Key 慎关,下游立刻 401)
Daily / Concurrency / Durations行内直接改
Expires At行内直接改
Delete彻底删除,不可恢复;在跑的任务跑完,新请求立刻 401
⚠️ Key 一旦创建值固定,不能「换值」——要换只能 Delete + New。删了 Key 没保存完整值?只能 New 一个新的,无法找回。
5

任务监控(Tasks Tab)

默认最近 50 条,按创建时间倒序。

queued 排队
processing 生成中
completed ✔
failed ✘
📋 每条任务包含
Task ID · Status · Account · Prompt · Duration / Ratio / Size · API Key Name(谁触发)· Created At / Finished At
🔍 过滤 & 定位
顶部按状态 / 账号 / API Key 筛选,定位失败任务时用
场景操作
失败任务重跑有 Retry 按钮 → 同参数重新提交;没有 Retry = 无法重试(如 prompt 问题),需从 API 重新发请求
看已完成视频completed 状态里 URL 直接点开:http://localhost:9995/videos/xxx.mp4
一直 queued 不跑账号全忙或额度用完 → 看 Accounts 的 available 和 daily_left
"no account in pool"一个账号都没加 → 先 Add Account
6

常见问题排查 & 安全提示

先查容器状态(healthy),再按症状定位。

症状原因解决
面板白屏 / 打不开容器没起来docker compose ps,STATUS 必须 healthy
登录弹窗关不掉DOLA_ADMIN_KEY 没设或设错检查 compose 环境变量,up -d
Add Account 一直 runningGoogle 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
🚫 绝对禁止
· 完整 Key / 账号密码截图外发
· TOTP 密钥外泄(= Google 账户被盗)
· 随手关生产 Key 的 Enabled 开关(下游立刻 401)
✅ 建议
· 面板长时间没人访问 → 定期换 DOLA_ADMIN_KEY
· 公共电脑用完必点「退出」
· 新建 Key 后第一时间保存完整值
Dola Render Gateway 面板操作指南 · 图解版 · 由 OPERATIONS.md 整合生成 · 2026-10-23