PricingDocsAccount

Configuration

What every setting in danio.toml means, its allowed values and defaults, and the environment variables danio reads.

config/danio.toml holds only this computer's own settings. It is the one file danio leaves for people to edit by hand, so it uses TOML; every other file danio writes is JSON.

Workspace and project settings are kept in the host's database, not in this file.

Where the file is

The file is in the config folder inside the data directory. The data directory is:

SystemData directory
Windows%LOCALAPPDATA%\danio
Linux$XDG_DATA_HOME/danio, or ~/.local/share/danio when that is not set
Docker container/data

When the environment variable DANIO_HOME is set, the data directory is that. If the file does not exist, every setting has its default; the file is created the first time you change a setting. Under Settings, Data on this device shows the path to this file.

How to change it

  • In the interface: most settings can be changed on the Settings page. For other devices, change their settings under Device settings in the device details.
  • On the command line:
    danio config                    # list every setting and its value
    danio config get node.gpus      # read one
    danio config set node.gpus 0,1  # change one
    

    config set checks the value, then writes it to the file. While danio is running, the change applies at once; only cache_dir and work_dir need a restart.
  • By editing the file: edit danio.toml in an editor and restart danio. If the file has a setting danio doesn't know, or a value that breaks the rules, danio reports an error and names the setting.

Keys on the command line are the names in the file, with table settings joined by a dot, such as node.render and blender.path. Lists are separated by commas: danio config set addon.blenders "D:\Blender-A\blender.exe,D:\Blender-B\blender.exe". For number and string settings, an empty value ("") restores the default.

Cache and folders

Folders must be absolute paths. cache_dir, work_dir and shared_cache_dir can also be network shares, such as //NAS/cache.

SettingTypeDefaultDescription
cache_dirstringemptyCache folder, for files pulled from the store. Empty means cache under the data directory
work_dirstringemptyWork folder, for task folders, resource packs and temporary files. Empty means the data directory
shared_cache_dirstringemptyShared cache folder, used by several devices. A device looks here before the store. Empty means not used
shared_cache_gbinteger0Size limit of the shared cache, in GB. 0 means no limit
cache_keep_daysinteger14 when not writtenCached files unused for this many days are deleted
cache_max_gbinteger10 when not writtenSize limit of the cache, in GB. When it is exceeded, the longest unused files go first

cache_keep_days and cache_max_gb do not accept 0. To use the default, leave the setting out.

Running and updates

SettingTypeDefaultDescription
auto_updatebooleanfalseAutomatic updates. A host or a standalone computer downloads a new version in the background and switches to it between two chunks of rendering; a device in someone else's workspace follows the host's version
update_mirrorstringemptyA GitHub download mirror, which must start with https://, such as https://mirror.example.com/. danio tries it first, then GitHub. Empty means the one danio's website recommends
update_everyinteger0How often to check for a new version, in minutes. One of 30, 60, 360, 1440; 0 means 360 (6 hours)
show_consolebooleanfalseWindows only: the window version opens a terminal window beside it that shows the running log
keep_awakestringemptyPrevent sleep. render while accepting render work, always while danio runs, empty means don't
soundstringemptyAlert sounds. off turns them off, empty leaves them on
sound_volumeinteger0Alert sound volume, 1 to 100. 0 means 70

Tasks and uploads

SettingTypeDefaultDescription
job_files_hoursinteger0Hours a task folder sits unused before its project files are deleted; rendered frames and previews are kept. One of 1, 3, 24; -1 means never; 0 means 3
job_gone_daysinteger0Days after a task is cleared from the workspace before its task folder is deleted. One of 1, 7, 30; -1 means never; 0 means 1
upload_parallelinteger0How many parts of one object upload at once. One of 1, 2, 4, 8; 0 means 4
upload_lan_mbpsinteger0Speed limit for uploads to a store on the local network, in Mbps. 0 means no limit
upload_wan_mbpsinteger0Speed limit for uploads to a store beyond the local network, in Mbps. 0 means no limit

mounts

When the system doesn't show where an SMB share is mounted, tell danio with mounts. The key is the share, written at least down to the share name, such as //NAS/work; the value is its absolute path on this computer:

[mounts]
"//NAS/work" = "/mnt/nas/work"

On the command line: danio config set mounts.//NAS/work /mnt/nas/work. An empty value removes the entry.

node

[node]
render = true
gpus = [0, 1]
  • render (boolean): accept render work. false when not written. It matches the Render switch in the interface.
  • gpus (integer array): the GPU numbers Cycles uses. Empty means all GPUs.

blender

[blender]
path = "C:/Program Files/Blender Foundation/Blender 5.1/blender.exe"
  • path (string): the absolute path to the Blender program. When empty, danio finds one itself: the Blender this computer opens .blend files with (Windows), then the usual places and PATH.
  • pack (string): the ID of a resource pack installed on this computer. With a resource pack, path is the installed program. The danio config command can't set this one.

ffmpeg

[ffmpeg]
path = ""
  • path (string): the absolute path to the FFmpeg program. With both empty, rendering uses the workspace's FFmpeg resource pack for this platform first, else the one on PATH (FFmpeg).
  • pack (string): the same as in [blender].

addon

[addon]
blenders = ["D:/Blender-5.1.1/blender.exe"]
  • blenders (string array): Blenders danio doesn't find by itself, added by hand to the list so the danio add-on can be installed into them. Write absolute paths.

ui

[ui]
language = "en"
  • language (string): the language of the interface, the command line, the terminal interface and the tray. One of zh-CN, en; empty follows the system.

Environment variables

danio reads these when it starts. They have nothing to do with danio.toml.

VariableDescription
DANIO_HOMEThe data directory, as an absolute path. Keep it on this computer's own disk, not on an SMB or NFS share
DANIO_PORTThe port of the local interface. Without it, danio uses 7421 and moves up when that is taken; with it, danio uses only that port and reports an error when it is taken
DANIO_ADDRESSWhere the local interface listens, separated by commas. Without it, it listens only on 127.0.0.1. An IP of a network card means listening on that card, 0.0.0.0 means every card, and https://… is the address a reverse proxy gives to the outside
DANIO_TOKENA fixed local token, at least 32 characters. Without it, danio makes one the first time it starts and keeps it in data/local-token in the data directory
DANIO_TOKEN_FILERead the local token from this file, for a Docker secret. It can't be set together with DANIO_TOKEN
DANIO_LOG_LEVELSet to debug for a more detailed log
DANIO_BUNThe path of the Bun that runs plugins. Without it, danio uses the one on PATH, and downloads one if there is none
DANIO_JOIN_TOKENdanio workspace join reads the device token from here, so you don't have to write it on the command line
DANIO_RECOVERY_KEYThe recovery key, read from here when taking over a workspace
DANIO_S3_ACCESS_KEY, DANIO_S3_SECRET_KEYThe Access Key and Secret Key, read from here when taking over a workspace on object storage

Port 7420 is the one the workspace offers to other devices, and 7421 is the local interface's; they can't be the same. danio token new makes a token you can use. For how to set these variables in Docker, see Run the host on a NAS.