本机配置
danio.toml 里每一项设置的含义、可选值和默认值,以及 danio 读取的环境变量。
config/danio.toml 只放这台电脑自己的设置。它是 danio 唯一留给人手改的文件,所以用 TOML;danio 自己写的其他文件都是 JSON。
工作区和项目的设置记在主机的数据库里,不在这个文件里。
文件在哪
文件在数据目录的 config 子目录里。数据目录是:
| 系统 | 数据目录 |
|---|---|
| Windows | %LOCALAPPDATA%\danio |
| Linux | $XDG_DATA_HOME/danio,没设时是 ~/.local/share/danio |
| Docker 容器 | /data |
设了环境变量 DANIO_HOME 时,数据目录就是它。文件不存在时全部用默认值,第一次改设置后才会生成。:ui设置 页的 本机数据 里显示这个文件的路径。
怎么改
- 界面:大部分项在 设置 页里改。别的设备的设置,在设备详情的 设备设置 里改。
- 命令行:
danio config # 列出全部项和当前值 danio config get node.gpus # 读一项 danio config set node.gpus 0,1 # 改一项config set先检查值,再写进文件。danio 正在运行时,改动马上生效,只有cache_dir和work_dir要重启 danio。 - 手改文件:用编辑器改
danio.toml,重启 danio 后生效。写了不认识的项,或值不合规则,danio 会报错并指出是哪一项。
命令行里的键和文件里的名字一样,表里的项用点连起来,如 node.render、blender.path。列表用逗号隔开:danio config set addon.blenders "D:\Blender-A\blender.exe,D:\Blender-B\blender.exe"。数字和字符串项传空值("")是恢复默认。
缓存和目录
目录都要写绝对路径。cache_dir、work_dir、shared_cache_dir 也可以写网络共享,如 //NAS/cache。
| 配置项 | 类型 | 默认 | 说明 |
|---|---|---|---|
cache_dir | 字符串 | 空 | 缓存目录,放从存储拉下来的文件。空为数据目录下的 cache |
work_dir | 字符串 | 空 | 工作目录,放任务目录、资源包和临时文件。空为数据目录 |
shared_cache_dir | 字符串 | 空 | 共享缓存目录,几台设备共用。设备先在这里找文件,找不到再去存储。空为不用 |
shared_cache_gb | 整数 | 0 | 共享缓存的上限,单位 GB。0 为不限 |
cache_keep_days | 整数 | 不写时为 14 | 缓存里多少天没用过的文件会删掉 |
cache_max_gb | 整数 | 不写时为 10 | 缓存的上限,单位 GB。超出时最久没用的先删 |
cache_keep_days 和 cache_max_gb 不接受 0。要用默认值,就不写这一项。
运行和更新
| 配置项 | 类型 | 默认 | 说明 |
|---|---|---|---|
auto_update | 布尔 | false | 自动更新。主机和单机在后台下载新版,在两段渲染之间换上;加入别人工作区的设备跟随主机的版本 |
update_mirror | 字符串 | 空 | GitHub 下载加速地址,必须以 https:// 开头,如 https://mirror.example.com/。danio 先试它,再试 GitHub。空为用 danio 网站推荐的地址 |
update_every | 整数 | 0 | 多久检查一次新版,单位分钟。可选 30、60、360、1440;0 为 360(6 小时) |
show_console | 布尔 | false | 仅 Windows:窗口版旁边开一个终端窗口,显示运行日志 |
keep_awake | 字符串 | 空 | 防止休眠。render 为接收渲染时防止,always 为 danio 运行期间防止,空为不管 |
sound | 字符串 | 空 | 提示音。off 为关闭,空为开启 |
sound_volume | 整数 | 0 | 提示音音量,1 到 100。0 为 70 |
任务和上传
| 配置项 | 类型 | 默认 | 说明 |
|---|---|---|---|
job_files_hours | 整数 | 0 | 任务目录闲置多少小时后删除工程文件,渲染出的帧和预览保留。可选 1、3、24;-1 为不删;0 为 3 |
job_gone_days | 整数 | 0 | 任务从工作区清除后,多少天删除任务目录。可选 1、7、30;-1 为不删;0 为 1 |
upload_parallel | 整数 | 0 | 一个对象同时上传几块。可选 1、2、4、8;0 为 4 |
upload_lan_mbps | 整数 | 0 | 上传到局域网存储的限速,单位 Mbps。0 为不限 |
upload_wan_mbps | 整数 | 0 | 上传到局域网外存储的限速,单位 Mbps。0 为不限 |
mounts
系统里找不到某个 SMB 共享挂在哪时,用 mounts 告诉 danio。键是共享,至少写到共享名,如 //NAS/work;值是它在本机的绝对路径:
[mounts]
"//NAS/work" = "/mnt/nas/work"
命令行里写成 danio config set mounts.//NAS/work /mnt/nas/work。值留空是删掉这一条。
node
[node]
render = true
gpus = [0, 1]
render(布尔):接收渲染任务,不写时为false。对应界面里的 接收渲染 开关。gpus(整数数组):Cycles 使用的显卡序号。空为全部显卡。
blender
[blender]
path = "C:/Program Files/Blender Foundation/Blender 5.1/blender.exe"
path(字符串):Blender 程序的绝对路径。空时 danio 自己找:先用这台电脑打开 .blend 文件的那个 Blender(Windows),再找常见位置和 PATH。pack(字符串):装到本机的资源包的 ID。用资源包时,path是装好的程序。danio config命令不能设这一项。
ffmpeg
[ffmpeg]
path = ""
path(字符串):FFmpeg 程序的绝对路径。两项都空时,渲染先用工作区里本平台的 FFmpeg 资源包,没有时用 PATH 里的(FFmpeg)。pack(字符串):和[blender]里的一样。
addon
[addon]
blenders = ["D:/Blender-5.1.1/blender.exe"]
blenders(字符串数组):danio 找不到的 Blender,手动加进列表,用来安装 danio 扩展。写绝对路径。
ui
[ui]
language = "zh-CN"
language(字符串):界面、命令行、终端界面和托盘的语言。可选zh-CN、en;空为跟随系统。
环境变量
这些变量在 danio 启动时读取,和 danio.toml 无关。
| 变量 | 说明 |
|---|---|
DANIO_HOME | 数据目录,要写绝对路径。放在这台电脑自己的磁盘上,不要放在 SMB、NFS 共享里 |
DANIO_PORT | 本机界面的端口。不设时用 7421,被占用就往上找;设了就只用它,被占用时报错 |
DANIO_ADDRESS | 本机界面监听的地址,多个用逗号隔开。不设时只在 127.0.0.1 监听。写某块网卡的 IP 是在这块网卡上监听,0.0.0.0 是全部网卡,https://… 是反向代理对外的网址 |
DANIO_TOKEN | 固定本机令牌,至少 32 个字符。不设时 danio 第一次启动自己生成,存在数据目录的 data/local-token |
DANIO_TOKEN_FILE | 从这个文件读本机令牌,给 Docker secret 用。不能和 DANIO_TOKEN 同时设 |
DANIO_LOG_LEVEL | 设为 debug 时日志更详细 |
DANIO_BUN | 运行插件的 Bun 的路径。不设时用 PATH 里的,没有就下载 |
DANIO_JOIN_TOKEN | danio workspace join 从这里读设备令牌,不用在命令行里写 |
DANIO_RECOVERY_KEY | 接管工作区时,从这里读恢复密钥 |
DANIO_S3_ACCESS_KEY、DANIO_S3_SECRET_KEY | 接管对象存储上的工作区时,从这里读 Access Key 和 Secret Key |
7420 是工作区给其他设备用的端口,7421 是本机界面的端口,两个不能相同。danio token new 生成一个可用的令牌。Docker 里怎么设这些变量,见把主机放到 NAS 上。