[{"data":1,"prerenderedAt":1248},["ShallowReactive",2],{"docs-nav:docs_en":3,"docs-page:\u002Fen\u002Fdocs\u002Freference\u002Fconfig":158,"docs-surround:\u002Fen\u002Fdocs\u002Freference\u002Fconfig":1243},[4],{"title":5,"path":6,"stem":7,"children":8,"page":74},"En","\u002Fen","en",[9],{"title":10,"path":11,"stem":12,"children":13,"page":74},"Docs","\u002Fen\u002Fdocs","en\u002Fdocs",[14,75,134],{"title":15,"icon":16,"path":17,"stem":18,"children":19,"page":74},"Guides","i-lucide-book-open","\u002Fen\u002Fdocs\u002Fguides","en\u002Fdocs\u002F1.guides",[20,25,30,35,40,44,49,54,59,64,69],{"title":21,"path":22,"stem":23,"icon":24},"Introduction","\u002Fen\u002Fdocs\u002Fguides\u002Fintroduction","en\u002Fdocs\u002F1.guides\u002F01.introduction","i-lucide-info",{"title":26,"path":27,"stem":28,"icon":29},"Quick start","\u002Fen\u002Fdocs\u002Fguides\u002Fquick-start","en\u002Fdocs\u002F1.guides\u002F02.quick-start","i-lucide-play",{"title":31,"path":32,"stem":33,"icon":34},"Add the office computers","\u002Fen\u002Fdocs\u002Fguides\u002Foffice","en\u002Fdocs\u002F1.guides\u002F03.office","i-lucide-building-2",{"title":36,"path":37,"stem":38,"icon":39},"Rendering on GPU Rental Platforms","\u002Fen\u002Fdocs\u002Fguides\u002Fcloud","en\u002Fdocs\u002F1.guides\u002F04.cloud","i-lucide-cloud",{"title":41,"path":42,"stem":43},"Configuring Cloudflare R2 Storage","\u002Fen\u002Fdocs\u002Fguides\u002Fr2","en\u002Fdocs\u002F1.guides\u002F05.r2",{"title":45,"path":46,"stem":47,"icon":48},"Run the host on a NAS","\u002Fen\u002Fdocs\u002Fguides\u002Fnas","en\u002Fdocs\u002F1.guides\u002F06.nas","i-lucide-hard-drive",{"title":50,"path":51,"stem":52,"icon":53},"Devices in different places","\u002Fen\u002Fdocs\u002Fguides\u002Fremote","en\u002Fdocs\u002F1.guides\u002F07.remote","i-lucide-globe",{"title":55,"path":56,"stem":57,"icon":58},"Get the film","\u002Fen\u002Fdocs\u002Fguides\u002Ffilm","en\u002Fdocs\u002F1.guides\u002F08.film","i-lucide-film",{"title":60,"path":61,"stem":62,"icon":63},"When files change","\u002Fen\u002Fdocs\u002Fguides\u002Fupdate","en\u002Fdocs\u002F1.guides\u002F09.update","i-lucide-refresh-cw",{"title":65,"path":66,"stem":67,"icon":68},"When the host fails or moves","\u002Fen\u002Fdocs\u002Fguides\u002Fhost","en\u002Fdocs\u002F1.guides\u002F10.host","i-lucide-server-cog",{"title":70,"path":71,"stem":72,"icon":73},"FAQ","\u002Fen\u002Fdocs\u002Fguides\u002Ffaq","en\u002Fdocs\u002F1.guides\u002F11.faq","i-lucide-circle-help",false,{"title":76,"icon":77,"path":78,"stem":79,"children":80,"page":74},"Concepts","i-lucide-box","\u002Fen\u002Fdocs\u002Fconcepts","en\u002Fdocs\u002F2.concepts",[81,86,90,95,100,105,109,114,119,124,129],{"title":82,"path":83,"stem":84,"icon":85},"Workspace and host","\u002Fen\u002Fdocs\u002Fconcepts\u002Fworkspace","en\u002Fdocs\u002F2.concepts\u002F01.workspace","i-lucide-network",{"title":87,"path":88,"stem":89,"icon":48},"Store","\u002Fen\u002Fdocs\u002Fconcepts\u002Fstorage","en\u002Fdocs\u002F2.concepts\u002F02.storage",{"title":91,"path":92,"stem":93,"icon":94},"Assets, Unpacking & On-Demand Pull","\u002Fen\u002Fdocs\u002Fconcepts\u002Fassets","en\u002Fdocs\u002F2.concepts\u002F03.assets","i-lucide-images",{"title":96,"path":97,"stem":98,"icon":99},"Projects, tasks and versions","\u002Fen\u002Fdocs\u002Fconcepts\u002Ftasks","en\u002Fdocs\u002F2.concepts\u002F04.tasks","i-lucide-list-checks",{"title":101,"path":102,"stem":103,"icon":104},"Shots and chunks","\u002Fen\u002Fdocs\u002Fconcepts\u002Fshots","en\u002Fdocs\u002F2.concepts\u002F05.shots","i-lucide-clapperboard",{"title":106,"path":107,"stem":108,"icon":58},"Films","\u002Fen\u002Fdocs\u002Fconcepts\u002Ffilm","en\u002Fdocs\u002F2.concepts\u002F06.film",{"title":110,"path":111,"stem":112,"icon":113},"Blender and FFmpeg","\u002Fen\u002Fdocs\u002Fconcepts\u002Fruntimes","en\u002Fdocs\u002F2.concepts\u002F07.runtimes","i-lucide-package",{"title":115,"path":116,"stem":117,"icon":118},"Joining and access","\u002Fen\u002Fdocs\u002Fconcepts\u002Fjoining","en\u002Fdocs\u002F2.concepts\u002F08.joining","i-lucide-key-round",{"title":120,"path":121,"stem":122,"icon":123},"Render seats","\u002Fen\u002Fdocs\u002Fconcepts\u002Fseats","en\u002Fdocs\u002F2.concepts\u002F09.seats","i-lucide-gauge",{"title":125,"path":126,"stem":127,"icon":128},"Backup and takeover","\u002Fen\u002Fdocs\u002Fconcepts\u002Fbackup","en\u002Fdocs\u002F2.concepts\u002F10.backup","i-lucide-life-buoy",{"title":130,"path":131,"stem":132,"icon":133},"Plugins","\u002Fen\u002Fdocs\u002Fconcepts\u002Fplugins","en\u002Fdocs\u002F2.concepts\u002F11.plugins","i-lucide-puzzle",{"title":135,"icon":136,"path":137,"stem":138,"children":139,"page":74},"Reference","i-lucide-library","\u002Fen\u002Fdocs\u002Freference","en\u002Fdocs\u002F3.reference",[140,145,150,154],{"title":141,"path":142,"stem":143,"icon":144},"Command line","\u002Fen\u002Fdocs\u002Freference\u002Fcli","en\u002Fdocs\u002F3.reference\u002F1.cli","i-lucide-terminal",{"title":146,"path":147,"stem":148,"icon":149},"Configuration","\u002Fen\u002Fdocs\u002Freference\u002Fconfig","en\u002Fdocs\u002F3.reference\u002F2.config","i-lucide-sliders",{"title":151,"path":152,"stem":153},"HTTP API","\u002Fen\u002Fdocs\u002Freference\u002Fapi","en\u002Fdocs\u002F3.reference\u002F3.api",{"title":155,"path":156,"stem":157},"Plugin development","\u002Fen\u002Fdocs\u002Freference\u002Fplugins","en\u002Fdocs\u002F3.reference\u002F4.plugins",{"id":159,"title":146,"body":160,"description":1237,"extension":1238,"meta":1239,"navigation":1240,"path":147,"seo":1241,"stem":148,"__hash__":1242},"docs_en\u002Fen\u002Fdocs\u002F3.reference\u002F2.config.md",{"type":161,"value":162,"toc":1223},"minimark",[163,171,174,179,186,241,257,261,370,388,392,407,523,533,537,700,704,846,849,859,876,883,886,906,926,929,944,965,968,983,1004,1007,1022,1030,1032,1047,1061,1065,1070,1210,1219],[164,165,166,170],"p",{},[167,168,169],"code",{},"config\u002Fdanio.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.",[164,172,173],{},"Workspace and project settings are kept in the host's database, not in this file.",[175,176,178],"h2",{"id":177},"where-the-file-is","Where the file is",[164,180,181,182,185],{},"The file is in the ",[167,183,184],{},"config"," folder inside the data directory. The data directory is:",[187,188,189,202],"table",{},[190,191,192],"thead",{},[193,194,195,199],"tr",{},[196,197,198],"th",{},"System",[196,200,201],{},"Data directory",[203,204,205,216,231],"tbody",{},[193,206,207,211],{},[208,209,210],"td",{},"Windows",[208,212,213],{},[167,214,215],{},"%LOCALAPPDATA%\\danio",[193,217,218,221],{},[208,219,220],{},"Linux",[208,222,223,226,227,230],{},[167,224,225],{},"$XDG_DATA_HOME\u002Fdanio",", or ",[167,228,229],{},"~\u002F.local\u002Fshare\u002Fdanio"," when that is not set",[193,232,233,236],{},[208,234,235],{},"Docker container",[208,237,238],{},[167,239,240],{},"\u002Fdata",[164,242,243,244,247,248,252,253,256],{},"When the environment variable ",[167,245,246],{},"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 ",[249,250,251],"ui",{},"Settings",", ",[249,254,255],{},"Data on this device"," shows the path to this file.",[175,258,260],{"id":259},"how-to-change-it","How to change it",[262,263,264,279,360],"ul",{},[265,266,267,271,272,274,275,278],"li",{},[268,269,270],"strong",{},"In the interface",": most settings can be changed on the ",[249,273,251],{}," page. For other devices, change their settings under ",[249,276,277],{},"Device settings"," in the device details.",[265,280,281,284,285,345,348,351,352,355,356,359],{},[268,282,283],{},"On the command line",":",[286,287,292],"pre",{"className":288,"code":289,"language":290,"meta":291,"style":291},"language-bash shiki shiki-themes material-theme-palenight","danio config                    # list every setting and its value\ndanio config get node.gpus      # read one\ndanio config set node.gpus 0,1  # change one\n","bash","",[167,293,294,311,327],{"__ignoreMap":291},[295,296,299,303,307],"span",{"class":297,"line":298},"line",1,[295,300,302],{"class":301},"s5Dmg","danio",[295,304,306],{"class":305},"sfyAc"," config",[295,308,310],{"class":309},"saEQR","                    # list every setting and its value\n",[295,312,314,316,318,321,324],{"class":297,"line":313},2,[295,315,302],{"class":301},[295,317,306],{"class":305},[295,319,320],{"class":305}," get",[295,322,323],{"class":305}," node.gpus",[295,325,326],{"class":309},"      # read one\n",[295,328,330,332,334,337,339,342],{"class":297,"line":329},3,[295,331,302],{"class":301},[295,333,306],{"class":305},[295,335,336],{"class":305}," set",[295,338,323],{"class":305},[295,340,341],{"class":305}," 0,1",[295,343,344],{"class":309},"  # change one\n",[346,347],"br",{},[167,349,350],{},"config set"," checks the value, then writes it to the file. While danio is running, the change applies at once; only ",[167,353,354],{},"cache_dir"," and ",[167,357,358],{},"work_dir"," need a restart.",[265,361,362,365,366,369],{},[268,363,364],{},"By editing the file",": edit ",[167,367,368],{},"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.",[164,371,372,373,355,376,379,380,383,384,387],{},"Keys on the command line are the names in the file, with table settings joined by a dot, such as ",[167,374,375],{},"node.render",[167,377,378],{},"blender.path",". Lists are separated by commas: ",[167,381,382],{},"danio config set addon.blenders \"D:\\Blender-A\\blender.exe,D:\\Blender-B\\blender.exe\"",". For number and string settings, an empty value (",[167,385,386],{},"\"\"",") restores the default.",[175,389,391],{"id":390},"cache-and-folders","Cache and folders",[164,393,394,395,252,397,355,399,402,403,406],{},"Folders must be absolute paths. ",[167,396,354],{},[167,398,358],{},[167,400,401],{},"shared_cache_dir"," can also be network shares, such as ",[167,404,405],{},"\u002F\u002FNAS\u002Fcache",".",[187,408,409,425],{},[190,410,411],{},[193,412,413,416,419,422],{},[196,414,415],{},"Setting",[196,417,418],{},"Type",[196,420,421],{},"Default",[196,423,424],{},"Description",[203,426,427,446,459,472,493,508],{},[193,428,429,433,436,439],{},[208,430,431],{},[167,432,354],{},[208,434,435],{},"string",[208,437,438],{},"empty",[208,440,441,442,445],{},"Cache folder, for files pulled from the store. Empty means ",[167,443,444],{},"cache"," under the data directory",[193,447,448,452,454,456],{},[208,449,450],{},[167,451,358],{},[208,453,435],{},[208,455,438],{},[208,457,458],{},"Work folder, for task folders, resource packs and temporary files. Empty means the data directory",[193,460,461,465,467,469],{},[208,462,463],{},[167,464,401],{},[208,466,435],{},[208,468,438],{},[208,470,471],{},"Shared cache folder, used by several devices. A device looks here before the store. Empty means not used",[193,473,474,479,482,487],{},[208,475,476],{},[167,477,478],{},"shared_cache_gb",[208,480,481],{},"integer",[208,483,484],{},[167,485,486],{},"0",[208,488,489,490,492],{},"Size limit of the shared cache, in GB. ",[167,491,486],{}," means no limit",[193,494,495,500,502,505],{},[208,496,497],{},[167,498,499],{},"cache_keep_days",[208,501,481],{},[208,503,504],{},"14 when not written",[208,506,507],{},"Cached files unused for this many days are deleted",[193,509,510,515,517,520],{},[208,511,512],{},[167,513,514],{},"cache_max_gb",[208,516,481],{},[208,518,519],{},"10 when not written",[208,521,522],{},"Size limit of the cache, in GB. When it is exceeded, the longest unused files go first",[164,524,525,355,527,529,530,532],{},[167,526,499],{},[167,528,514],{}," do not accept ",[167,531,486],{},". To use the default, leave the setting out.",[175,534,536],{"id":535},"running-and-updates","Running and updates",[187,538,539,551],{},[190,540,541],{},[193,542,543,545,547,549],{},[196,544,415],{},[196,546,418],{},[196,548,421],{},[196,550,424],{},[203,552,553,571,593,625,641,663,681],{},[193,554,555,560,563,568],{},[208,556,557],{},[167,558,559],{},"auto_update",[208,561,562],{},"boolean",[208,564,565],{},[167,566,567],{},"false",[208,569,570],{},"Automatic 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",[193,572,573,578,580,582],{},[208,574,575],{},[167,576,577],{},"update_mirror",[208,579,435],{},[208,581,438],{},[208,583,584,585,588,589,592],{},"A GitHub download mirror, which must start with ",[167,586,587],{},"https:\u002F\u002F",", such as ",[167,590,591],{},"https:\u002F\u002Fmirror.example.com\u002F",". danio tries it first, then GitHub. Empty means the one danio's website recommends",[193,594,595,600,602,606],{},[208,596,597],{},[167,598,599],{},"update_every",[208,601,481],{},[208,603,604],{},[167,605,486],{},[208,607,608,609,252,612,252,615,252,618,621,622,624],{},"How often to check for a new version, in minutes. One of ",[167,610,611],{},"30",[167,613,614],{},"60",[167,616,617],{},"360",[167,619,620],{},"1440","; ",[167,623,486],{}," means 360 (6 hours)",[193,626,627,632,634,638],{},[208,628,629],{},[167,630,631],{},"show_console",[208,633,562],{},[208,635,636],{},[167,637,567],{},[208,639,640],{},"Windows only: the window version opens a terminal window beside it that shows the running log",[193,642,643,648,650,652],{},[208,644,645],{},[167,646,647],{},"keep_awake",[208,649,435],{},[208,651,438],{},[208,653,654,655,658,659,662],{},"Prevent sleep. ",[167,656,657],{},"render"," while accepting render work, ",[167,660,661],{},"always"," while danio runs, empty means don't",[193,664,665,670,672,674],{},[208,666,667],{},[167,668,669],{},"sound",[208,671,435],{},[208,673,438],{},[208,675,676,677,680],{},"Alert sounds. ",[167,678,679],{},"off"," turns them off, empty leaves them on",[193,682,683,688,690,694],{},[208,684,685],{},[167,686,687],{},"sound_volume",[208,689,481],{},[208,691,692],{},[167,693,486],{},[208,695,696,697,699],{},"Alert sound volume, 1 to 100. ",[167,698,486],{}," means 70",[175,701,703],{"id":702},"tasks-and-uploads","Tasks and uploads",[187,705,706,718],{},[190,707,708],{},[193,709,710,712,714,716],{},[196,711,415],{},[196,713,418],{},[196,715,421],{},[196,717,424],{},[203,719,720,752,780,810,828],{},[193,721,722,727,729,733],{},[208,723,724],{},[167,725,726],{},"job_files_hours",[208,728,481],{},[208,730,731],{},[167,732,486],{},[208,734,735,736,252,739,252,742,621,745,748,749,751],{},"Hours a task folder sits unused before its project files are deleted; rendered frames and previews are kept. One of ",[167,737,738],{},"1",[167,740,741],{},"3",[167,743,744],{},"24",[167,746,747],{},"-1"," means never; ",[167,750,486],{}," means 3",[193,753,754,759,761,765],{},[208,755,756],{},[167,757,758],{},"job_gone_days",[208,760,481],{},[208,762,763],{},[167,764,486],{},[208,766,767,768,252,770,252,773,621,775,748,777,779],{},"Days after a task is cleared from the workspace before its task folder is deleted. One of ",[167,769,738],{},[167,771,772],{},"7",[167,774,611],{},[167,776,747],{},[167,778,486],{}," means 1",[193,781,782,787,789,793],{},[208,783,784],{},[167,785,786],{},"upload_parallel",[208,788,481],{},[208,790,791],{},[167,792,486],{},[208,794,795,796,252,798,252,801,252,804,621,807,809],{},"How many parts of one object upload at once. One of ",[167,797,738],{},[167,799,800],{},"2",[167,802,803],{},"4",[167,805,806],{},"8",[167,808,486],{}," means 4",[193,811,812,817,819,823],{},[208,813,814],{},[167,815,816],{},"upload_lan_mbps",[208,818,481],{},[208,820,821],{},[167,822,486],{},[208,824,825,826,492],{},"Speed limit for uploads to a store on the local network, in Mbps. ",[167,827,486],{},[193,829,830,835,837,841],{},[208,831,832],{},[167,833,834],{},"upload_wan_mbps",[208,836,481],{},[208,838,839],{},[167,840,486],{},[208,842,843,844,492],{},"Speed limit for uploads to a store beyond the local network, in Mbps. ",[167,845,486],{},[175,847,848],{"id":848},"mounts",[164,850,851,852,854,855,858],{},"When the system doesn't show where an SMB share is mounted, tell danio with ",[167,853,848],{},". The key is the share, written at least down to the share name, such as ",[167,856,857],{},"\u002F\u002FNAS\u002Fwork","; the value is its absolute path on this computer:",[286,860,864],{"className":861,"code":862,"language":863,"meta":291,"style":291},"language-toml shiki shiki-themes material-theme-palenight","[mounts]\n\"\u002F\u002FNAS\u002Fwork\" = \"\u002Fmnt\u002Fnas\u002Fwork\"\n","toml",[167,865,866,871],{"__ignoreMap":291},[295,867,868],{"class":297,"line":298},[295,869,870],{},"[mounts]\n",[295,872,873],{"class":297,"line":313},[295,874,875],{},"\"\u002F\u002FNAS\u002Fwork\" = \"\u002Fmnt\u002Fnas\u002Fwork\"\n",[164,877,878,879,882],{},"On the command line: ",[167,880,881],{},"danio config set mounts.\u002F\u002FNAS\u002Fwork \u002Fmnt\u002Fnas\u002Fwork",". An empty value removes the entry.",[175,884,885],{"id":885},"node",[286,887,889],{"className":861,"code":888,"language":863,"meta":291,"style":291},"[node]\nrender = true\ngpus = [0, 1]\n",[167,890,891,896,901],{"__ignoreMap":291},[295,892,893],{"class":297,"line":298},[295,894,895],{},"[node]\n",[295,897,898],{"class":297,"line":313},[295,899,900],{},"render = true\n",[295,902,903],{"class":297,"line":329},[295,904,905],{},"gpus = [0, 1]\n",[262,907,908,920],{},[265,909,910,912,913,915,916,919],{},[167,911,657],{}," (boolean): accept render work. ",[167,914,567],{}," when not written. It matches the ",[249,917,918],{},"Render"," switch in the interface.",[265,921,922,925],{},[167,923,924],{},"gpus"," (integer array): the GPU numbers Cycles uses. Empty means all GPUs.",[175,927,928],{"id":928},"blender",[286,930,932],{"className":861,"code":931,"language":863,"meta":291,"style":291},"[blender]\npath = \"C:\u002FProgram Files\u002FBlender Foundation\u002FBlender 5.1\u002Fblender.exe\"\n",[167,933,934,939],{"__ignoreMap":291},[295,935,936],{"class":297,"line":298},[295,937,938],{},"[blender]\n",[295,940,941],{"class":297,"line":313},[295,942,943],{},"path = \"C:\u002FProgram Files\u002FBlender Foundation\u002FBlender 5.1\u002Fblender.exe\"\n",[262,945,946,952],{},[265,947,948,951],{},[167,949,950],{},"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.",[265,953,954,957,958,960,961,964],{},[167,955,956],{},"pack"," (string): the ID of a resource pack installed on this computer. With a resource pack, ",[167,959,950],{}," is the installed program. The ",[167,962,963],{},"danio config"," command can't set this one.",[175,966,967],{"id":967},"ffmpeg",[286,969,971],{"className":861,"code":970,"language":863,"meta":291,"style":291},"[ffmpeg]\npath = \"\"\n",[167,972,973,978],{"__ignoreMap":291},[295,974,975],{"class":297,"line":298},[295,976,977],{},"[ffmpeg]\n",[295,979,980],{"class":297,"line":313},[295,981,982],{},"path = \"\"\n",[262,984,985,996],{},[265,986,987,989,990,995],{},[167,988,950],{}," (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 (",[991,992,994],"a",{"href":993},"\u002Fen\u002Fdocs\u002Fconcepts\u002Fruntimes#ffmpeg","FFmpeg",").",[265,997,998,1000,1001,406],{},[167,999,956],{}," (string): the same as in ",[167,1002,1003],{},"[blender]",[175,1005,1006],{"id":1006},"addon",[286,1008,1010],{"className":861,"code":1009,"language":863,"meta":291,"style":291},"[addon]\nblenders = [\"D:\u002FBlender-5.1.1\u002Fblender.exe\"]\n",[167,1011,1012,1017],{"__ignoreMap":291},[295,1013,1014],{"class":297,"line":298},[295,1015,1016],{},"[addon]\n",[295,1018,1019],{"class":297,"line":313},[295,1020,1021],{},"blenders = [\"D:\u002FBlender-5.1.1\u002Fblender.exe\"]\n",[262,1023,1024],{},[265,1025,1026,1029],{},[167,1027,1028],{},"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.",[175,1031,249],{"id":249},[286,1033,1035],{"className":861,"code":1034,"language":863,"meta":291,"style":291},"[ui]\nlanguage = \"en\"\n",[167,1036,1037,1042],{"__ignoreMap":291},[295,1038,1039],{"class":297,"line":298},[295,1040,1041],{},"[ui]\n",[295,1043,1044],{"class":297,"line":313},[295,1045,1046],{},"language = \"en\"\n",[262,1048,1049],{},[265,1050,1051,1054,1055,252,1058,1060],{},[167,1052,1053],{},"language"," (string): the language of the interface, the command line, the terminal interface and the tray. One of ",[167,1056,1057],{},"zh-CN",[167,1059,7],{},"; empty follows the system.",[175,1062,1064],{"id":1063},"environment-variables","Environment variables",[164,1066,1067,1068,406],{},"danio reads these when it starts. They have nothing to do with ",[167,1069,368],{},[187,1071,1072,1081],{},[190,1073,1074],{},[193,1075,1076,1079],{},[196,1077,1078],{},"Variable",[196,1080,424],{},[203,1082,1083,1092,1102,1124,1138,1150,1164,1174,1187,1197],{},[193,1084,1085,1089],{},[208,1086,1087],{},[167,1088,246],{},[208,1090,1091],{},"The data directory, as an absolute path. Keep it on this computer's own disk, not on an SMB or NFS share",[193,1093,1094,1099],{},[208,1095,1096],{},[167,1097,1098],{},"DANIO_PORT",[208,1100,1101],{},"The 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",[193,1103,1104,1109],{},[208,1105,1106],{},[167,1107,1108],{},"DANIO_ADDRESS",[208,1110,1111,1112,1115,1116,1119,1120,1123],{},"Where the local interface listens, separated by commas. Without it, it listens only on ",[167,1113,1114],{},"127.0.0.1",". An IP of a network card means listening on that card, ",[167,1117,1118],{},"0.0.0.0"," means every card, and ",[167,1121,1122],{},"https:\u002F\u002F…"," is the address a reverse proxy gives to the outside",[193,1125,1126,1131],{},[208,1127,1128],{},[167,1129,1130],{},"DANIO_TOKEN",[208,1132,1133,1134,1137],{},"A fixed local token, at least 32 characters. Without it, danio makes one the first time it starts and keeps it in ",[167,1135,1136],{},"data\u002Flocal-token"," in the data directory",[193,1139,1140,1145],{},[208,1141,1142],{},[167,1143,1144],{},"DANIO_TOKEN_FILE",[208,1146,1147,1148],{},"Read the local token from this file, for a Docker secret. It can't be set together with ",[167,1149,1130],{},[193,1151,1152,1157],{},[208,1153,1154],{},[167,1155,1156],{},"DANIO_LOG_LEVEL",[208,1158,1159,1160,1163],{},"Set to ",[167,1161,1162],{},"debug"," for a more detailed log",[193,1165,1166,1171],{},[208,1167,1168],{},[167,1169,1170],{},"DANIO_BUN",[208,1172,1173],{},"The path of the Bun that runs plugins. Without it, danio uses the one on PATH, and downloads one if there is none",[193,1175,1176,1181],{},[208,1177,1178],{},[167,1179,1180],{},"DANIO_JOIN_TOKEN",[208,1182,1183,1186],{},[167,1184,1185],{},"danio workspace join"," reads the device token from here, so you don't have to write it on the command line",[193,1188,1189,1194],{},[208,1190,1191],{},[167,1192,1193],{},"DANIO_RECOVERY_KEY",[208,1195,1196],{},"The recovery key, read from here when taking over a workspace",[193,1198,1199,1207],{},[208,1200,1201,252,1204],{},[167,1202,1203],{},"DANIO_S3_ACCESS_KEY",[167,1205,1206],{},"DANIO_S3_SECRET_KEY",[208,1208,1209],{},"The Access Key and Secret Key, read from here when taking over a workspace on object storage",[164,1211,1212,1213,1216,1217,406],{},"Port 7420 is the one the workspace offers to other devices, and 7421 is the local interface's; they can't be the same. ",[167,1214,1215],{},"danio token new"," makes a token you can use. For how to set these variables in Docker, see ",[991,1218,45],{"href":46},[1220,1221,1222],"style",{},"html pre.shiki code .s5Dmg, html code.shiki .s5Dmg{--shiki-default:#FFCB6B}html pre.shiki code .sfyAc, html code.shiki .sfyAc{--shiki-default:#C3E88D}html pre.shiki code .saEQR, html code.shiki .saEQR{--shiki-default:#676E95;--shiki-default-font-style:italic}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":291,"searchDepth":313,"depth":329,"links":1224},[1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236],{"id":177,"depth":313,"text":178},{"id":259,"depth":313,"text":260},{"id":390,"depth":313,"text":391},{"id":535,"depth":313,"text":536},{"id":702,"depth":313,"text":703},{"id":848,"depth":313,"text":848},{"id":885,"depth":313,"text":885},{"id":928,"depth":313,"text":928},{"id":967,"depth":313,"text":967},{"id":1006,"depth":313,"text":1006},{"id":249,"depth":313,"text":249},{"id":1063,"depth":313,"text":1064},"What every setting in danio.toml means, its allowed values and defaults, and the environment variables danio reads.","md",{},{"icon":149},{"title":146,"description":1237},"mqb_qZQ0mMzn6Cgx2Ds-vWIqg7A_2gVulVXtubL8qdc",[1244,1246],{"title":141,"path":142,"stem":143,"description":1245,"icon":144,"children":-1},"Open the interface, submit tasks, join workspaces and manage danio on this machine from a terminal.",{"title":151,"path":152,"stem":153,"description":1247,"children":-1},"[object Object]",1794627696229]