价格文档账号

命令行

在终端里打开界面、提交任务、加入工作区、管理这台机器上的 danio。

界面里能做的大部分事,终端里也能做。SSH 到一台渲染服务器上排查问题,或者写脚本批量提交,用命令行会更顺手。完整的列表随时可以用 danio help 看。

命令都是找这台电脑上正在运行的 danio 去办事。没有 danio 在运行时,命令会在自己的进程里临时启动一个。

打开界面

有桌面时直接运行 danio,打开窗口和托盘图标;SSH 到服务器上运行它,得到的是终端界面。

命令做什么
danio打开界面:有桌面时是窗口和托盘图标,没有时是终端界面
danio tui终端里的界面,排法和能做的事照网页
danio web [--addr host:port] [--no-open]在浏览器里打开界面,给没有桌面的机器用
danio show <页面>打开 danio 窗口里的一页,如 /?job=<任务>
danio tray只在托盘里运行
danio serve只运行 danio,不开界面,给 Linux 服务器和 systemd 用

danio tui 和 danio web 在没有 danio 运行时会自己带一个,tui 退出就停,web 一直运行到你按 Ctrl-C。要让 danio 一直在后台跑,用下面的 danio service install。

提交和管任务

这组命令默认对着这台电脑当主机的工作区。要对加入的别的工作区操作,加 --workspace <名称或 ID>,submit、update、jobs、job、pause、resume、cancel、project 都可以加。

danio submit sh010.blend --project 短片 --frames 1-250
命令做什么
danio submit <file.blend> --project <项目>提交,每个场景一个任务。可以加 --scene、--frames、--chunk、--name、--note;--here 在本机渲染,不经过存储
danio update <任务>更新任务,默认沿用上一版入口 .blend,只传变化的文件
danio jobs [--json]任务列表
danio job <任务> [--json]任务详情:版本、渲染进度、分段
danio pause|resume|cancel <任务>暂停、继续、取消
danio render <任务>在本机渲染一个已提交到存储的任务
danio project add <名称>新建项目,可以加 --python on|off、--include <glob>
danio project set <名称> / danio project ls改项目设置,列出项目

脚本里要读结果时加 --json。

工作区和设备

在没有桌面的服务器上,加入工作区、开放给别的设备、发令牌,都用 danio workspace。

命令做什么
danio workspace这台设备当主机或已加入的工作区
danio workspace join <主机地址>用设备令牌加入,令牌从提示符或管道读入
danio workspace join <主机地址> --password用局域网加入密码加入
danio workspace join <主机地址> --ask申请加入,等对方管理员批准
danio workspace discover找局域网里开放加入的工作区
danio workspace port <端口>对其他设备开放,如 7420;0 为关闭
danio workspace address [地址…]主机在哪块网卡上监听、发给设备的网址,如 https://danio.example.com
danio workspace token add <名称> --access none|viewer|station|admin生成令牌;--render 加入后接收渲染,--multi 多台共用
danio workspace token ls / rm <令牌 ID>列出、作废令牌
danio workspace takeover <共享目录>从存储里的备份接管工作区,恢复密钥从提示符读入
danio workspace set-host <地址>主机换了地址时,改成新地址

对象存储上的工作区这样接管:

danio workspace takeover s3://<桶>/<前缀> --endpoint <地址>

密钥从提示符读入,也可以用 DANIO_S3_ACCESS_KEY、DANIO_S3_SECRET_KEY、DANIO_RECOVERY_KEY 给。

管设备用 danio device,设备可以写 ID 或名称:

命令做什么
danio device工作区的设备
danio device block|unblock <设备>拉黑、解除拉黑
danio device access <设备> none|viewer|station|admin改权限:无、查看、工作站、管理
danio device render <设备> on|off打开或关闭那台设备的渲染,它下次联系主机时生效

工作区的存储用 danio store add <名称> <SMB 路径或本地路径> 设,danio store ls 查看。一个工作区只有一个存储。

这台机器

这组命令只管你正在用的这台电脑:随电脑启动、更新、卸载、检查环境、改本机配置。

服务

命令做什么
danio service是否随电脑启动、danio 是否在运行
danio service install随电脑启动(Linux 用 systemd,Windows 在登录时),并马上启动
danio service uninstall不再随电脑启动,正在运行的不受影响
danio service restart重启,换上 danio upgrade 下载的新版本
danio service stop停止正在运行的 danio

更新和卸载

命令做什么
danio upgrade更新到最新发布的版本
danio upgrade check只看有没有新版本
danio upgrade list [--pre]列出发布的版本,--pre 连预发布版本一起列
danio upgrade <版本>换成指定的版本,如 0.2.0,也可以回退
danio upgrade --from <主机地址>换成那个工作区主机正在用的版本
danio uninstall [--data] [--yes]停止 danio、删除程序;--data 连同数据一起删

从 GitHub 下载慢时,danio upgrade 可以加 --mirror <地址> 用下载加速,如 https://mirror.example.com/;不加时用设置里的“下载加速”。

检查和配置

命令做什么
danio status [--json]danio 是否在运行、数据目录在哪
danio doctor [--json]检查这台电脑能不能提交和渲染
danio doctor --fix只输出安装缺失系统库的命令
danio doctor --libs只输出 Blender 缺的系统库的安装命令
danio config显示本机配置 config/danio.toml
danio config get <键> / set <键> <值>读、改一项本机配置,如 danio config set node.gpus 0,1
danio version版本

本机配置只放这台机器自己的事:缓存目录、执行目录、Blender 路径、渲染机设置,完整说明见本机配置。项目的设置在项目里。

插件和接口

插件跑在主机上,比如发飞书通知、同步到别的系统。怎么写插件见插件开发,接口见HTTP 接口。

命令做什么
danio plugin [--json]列出插件:状态、版本、权限、最近的错误
danio plugin add <npm 包 | 文件夹 | .tgz>安装,先显示它要的权限,确认后启用
danio plugin on|off|rm <插件>启用、停用、删除
danio plugin update从各自的来源重装全部插件
danio plugin config <插件> [键=值]…改设置,不给值时逐项询问
danio openapi [--lang en]输出接口描述(OpenAPI 3.1 JSON),--lang en 为英文版
danio token new生成一个随机令牌,给 DANIO_TOKEN 用

环境变量

变量做什么
DANIO_PORT本机界面的端口
DANIO_ADDRESS本机界面的地址,默认只在 127.0.0.1 上监听;写法同 danio workspace address,多个用逗号分隔
DANIO_HOME整个数据目录放在哪
DANIO_TOKEN本机令牌,网页登录页可以粘贴它
DANIO_TOKEN_FILE从文件读本机令牌,代替 DANIO_TOKEN

比如想从别的电脑打开一台服务器上的 danio 网页界面,就设 DANIO_ADDRESS。

DANIO_HOME 里有工作区的数据库,要放在本机的盘上,不能指向 SMB 或 NFS 共享。Docker 镜像已经设好 DANIO_HOME=/data,把 NAS 本地卷上的一个文件夹挂到 /data 就行,见把主机放到 NAS 上。