[{"data":1,"prerenderedAt":1304},["ShallowReactive",2],{"docs-nav:docs_en":3,"docs-page:\u002Fen\u002Fdocs\u002Freference\u002Fcli":158,"docs-surround:\u002Fen\u002Fdocs\u002Freference\u002Fcli":1299},[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":141,"body":160,"description":1293,"extension":1294,"meta":1295,"navigation":1296,"path":142,"seo":1297,"stem":143,"__hash__":1298},"docs_en\u002Fen\u002Fdocs\u002F3.reference\u002F1.cli.md",{"type":161,"value":162,"toc":1279},"minimark",[163,172,175,180,187,269,291,295,328,371,497,504,508,515,654,657,716,728,735,786,797,801,804,809,874,878,961,975,979,1070,1077,1081,1089,1178,1182,1254,1260,1275],[164,165,166,167,171],"p",{},"Most of what you can do in the interface, you can also do in a terminal. When you SSH into a render server to look into a problem, or write a script to submit in bulk, the command line is easier. Run ",[168,169,170],"code",{},"danio help"," any time for the full list.",[164,173,174],{},"Commands ask the danio running on this computer to do the work. When no danio is running, a command starts one temporarily in its own process.",[176,177,179],"h2",{"id":178},"open-the-interface","Open the interface",[164,181,182,183,186],{},"On a desktop, run ",[168,184,185],{},"danio"," to open the window and tray icon. Run it on a server over SSH and you get the terminal interface.",[188,189,190,203],"table",{},[191,192,193],"thead",{},[194,195,196,200],"tr",{},[197,198,199],"th",{},"Command",[197,201,202],{},"What it does",[204,205,206,216,226,236,249,259],"tbody",{},[194,207,208,213],{},[209,210,211],"td",{},[168,212,185],{},[209,214,215],{},"Open the interface: a window and tray icon on a desktop, the terminal interface without one",[194,217,218,223],{},[209,219,220],{},[168,221,222],{},"danio tui",[209,224,225],{},"The interface in the terminal, laid out like the web interface, with the same actions",[194,227,228,233],{},[209,229,230],{},[168,231,232],{},"danio web [--addr host:port] [--no-open]",[209,234,235],{},"Open the interface in a browser, for machines without a desktop",[194,237,238,243],{},[209,239,240],{},[168,241,242],{},"danio show \u003Cpage>",[209,244,245,246],{},"Open a page in the danio window, such as ",[168,247,248],{},"\u002F?job=\u003Ctask>",[194,250,251,256],{},[209,252,253],{},[168,254,255],{},"danio tray",[209,257,258],{},"Run in the tray only",[194,260,261,266],{},[209,262,263],{},[168,264,265],{},"danio serve",[209,267,268],{},"Run danio only, with no interface, for Linux servers and systemd",[164,270,271,272,274,275,278,279,282,283,286,287,290],{},"When no danio is running, ",[168,273,222],{}," and ",[168,276,277],{},"danio web"," bring their own: ",[168,280,281],{},"tui"," stops it when you quit, and ",[168,284,285],{},"web"," keeps running until you press Ctrl-C. To keep danio running in the background, use ",[168,288,289],{},"danio service install"," below.",[176,292,294],{"id":293},"submit-and-manage-tasks","Submit and manage tasks",[164,296,297,298,301,302,305,306,305,309,305,312,305,315,305,318,305,321,274,324,327],{},"These commands work on the workspace this computer hosts by default. To work on another workspace this device has joined, add ",[168,299,300],{},"--workspace \u003Cname or ID>",". This works with ",[168,303,304],{},"submit",", ",[168,307,308],{},"update",[168,310,311],{},"jobs",[168,313,314],{},"job",[168,316,317],{},"pause",[168,319,320],{},"resume",[168,322,323],{},"cancel",[168,325,326],{},"project",".",[329,330,335],"pre",{"className":331,"code":332,"language":333,"meta":334,"style":334},"language-bash shiki shiki-themes material-theme-palenight","danio submit sh010.blend --project \"Short film\" --frames 1-250\n","bash","",[168,336,337],{"__ignoreMap":334},[338,339,342,345,349,352,355,359,362,365,368],"span",{"class":340,"line":341},"line",1,[338,343,185],{"class":344},"s5Dmg",[338,346,348],{"class":347},"sfyAc"," submit",[338,350,351],{"class":347}," sh010.blend",[338,353,354],{"class":347}," --project",[338,356,358],{"class":357},"sAklC"," \"",[338,360,361],{"class":347},"Short film",[338,363,364],{"class":357},"\"",[338,366,367],{"class":347}," --frames",[338,369,370],{"class":347}," 1-250\n",[188,372,373,381],{},[191,374,375],{},[194,376,377,379],{},[197,378,199],{},[197,380,202],{},[204,382,383,413,427,437,447,457,467,483],{},[194,384,385,390],{},[209,386,387],{},[168,388,389],{},"danio submit \u003Cfile.blend> --project \u003Cproject>",[209,391,392,393,305,396,305,399,305,402,274,405,408,409,412],{},"Submit, one task per scene. Takes ",[168,394,395],{},"--scene",[168,397,398],{},"--frames",[168,400,401],{},"--chunk",[168,403,404],{},"--name",[168,406,407],{},"--note","; ",[168,410,411],{},"--here"," renders on this device without going through the store",[194,414,415,420],{},[209,416,417],{},[168,418,419],{},"danio update \u003Ctask>",[209,421,422,423,426],{},"Update a task. Keeps the previous version's entry ",[168,424,425],{},".blend"," by default and uploads only the files that changed",[194,428,429,434],{},[209,430,431],{},[168,432,433],{},"danio jobs [--json]",[209,435,436],{},"List tasks",[194,438,439,444],{},[209,440,441],{},[168,442,443],{},"danio job \u003Ctask> [--json]",[209,445,446],{},"Task details: versions, render progress, chunks",[194,448,449,454],{},[209,450,451],{},[168,452,453],{},"danio pause|resume|cancel \u003Ctask>",[209,455,456],{},"Pause, resume, cancel",[194,458,459,464],{},[209,460,461],{},[168,462,463],{},"danio render \u003Ctask>",[209,465,466],{},"Render a task already submitted to the store on this device",[194,468,469,474],{},[209,470,471],{},[168,472,473],{},"danio project add \u003Cname>",[209,475,476,477,274,480],{},"Create a project. Takes ",[168,478,479],{},"--python on|off",[168,481,482],{},"--include \u003Cglob>",[194,484,485,494],{},[209,486,487,490,491],{},[168,488,489],{},"danio project set \u003Cname>"," \u002F ",[168,492,493],{},"danio project ls",[209,495,496],{},"Change a project's settings, list projects",[164,498,499,500,503],{},"Add ",[168,501,502],{},"--json"," when a script needs to read the output.",[176,505,507],{"id":506},"workspaces-and-devices","Workspaces and devices",[164,509,510,511,514],{},"On a server without a desktop, use ",[168,512,513],{},"danio workspace"," to join a workspace, open it to other devices and hand out tokens.",[188,516,517,525],{},[191,518,519],{},[194,520,521,523],{},[197,522,199],{},[197,524,202],{},[204,526,527,536,546,556,566,576,590,603,621,634,644],{},[194,528,529,533],{},[209,530,531],{},[168,532,513],{},[209,534,535],{},"The workspaces this device hosts or has joined",[194,537,538,543],{},[209,539,540],{},[168,541,542],{},"danio workspace join \u003Chost address>",[209,544,545],{},"Join with a device token, read from the prompt or a pipe",[194,547,548,553],{},[209,549,550],{},[168,551,552],{},"danio workspace join \u003Chost address> --password",[209,554,555],{},"Join with the local network join password",[194,557,558,563],{},[209,559,560],{},[168,561,562],{},"danio workspace join \u003Chost address> --ask",[209,564,565],{},"Ask to join and wait for an admin there to approve",[194,567,568,573],{},[209,569,570],{},[168,571,572],{},"danio workspace discover",[209,574,575],{},"Find workspaces open to join on the local network",[194,577,578,583],{},[209,579,580],{},[168,581,582],{},"danio workspace port \u003Cport>",[209,584,585,586,589],{},"Open to other devices, such as 7420; ",[168,587,588],{},"0"," closes it",[194,591,592,597],{},[209,593,594],{},[168,595,596],{},"danio workspace address [address…]",[209,598,599,600],{},"Which network interfaces the host listens on and the URL given to devices, such as ",[168,601,602],{},"https:\u002F\u002Fdanio.example.com",[194,604,605,610],{},[209,606,607],{},[168,608,609],{},"danio workspace token add \u003Cname> --access none|viewer|station|admin",[209,611,612,613,616,617,620],{},"Create a token; ",[168,614,615],{},"--render"," makes the device accept renders after joining, ",[168,618,619],{},"--multi"," lets several devices share it",[194,622,623,631],{},[209,624,625,490,628],{},[168,626,627],{},"danio workspace token ls",[168,629,630],{},"rm \u003Ctoken ID>",[209,632,633],{},"List tokens, revoke one",[194,635,636,641],{},[209,637,638],{},[168,639,640],{},"danio workspace takeover \u003Cshared folder>",[209,642,643],{},"Take over the workspace from the backup in its store; the recovery key is read from the prompt",[194,645,646,651],{},[209,647,648],{},[168,649,650],{},"danio workspace set-host \u003Caddress>",[209,652,653],{},"Change to the new address after the host's address changes",[164,655,656],{},"Take over a workspace on object storage like this:",[329,658,660],{"className":331,"code":659,"language":333,"meta":334,"style":334},"danio workspace takeover s3:\u002F\u002F\u003Cbucket>\u002F\u003Cprefix> --endpoint \u003Caddress>\n",[168,661,662],{"__ignoreMap":334},[338,663,664,666,669,672,675,678,681,685,688,691,693,696,699,701,704,707,710,713],{"class":340,"line":341},[338,665,185],{"class":344},[338,667,668],{"class":347}," workspace",[338,670,671],{"class":347}," takeover",[338,673,674],{"class":347}," s3:\u002F\u002F",[338,676,677],{"class":357},"\u003C",[338,679,680],{"class":347},"bucke",[338,682,684],{"class":683},"s0W1g","t",[338,686,687],{"class":357},">",[338,689,690],{"class":347},"\u002F",[338,692,677],{"class":357},[338,694,695],{"class":347},"prefi",[338,697,698],{"class":683},"x",[338,700,687],{"class":357},[338,702,703],{"class":347}," --endpoint",[338,705,706],{"class":357}," \u003C",[338,708,709],{"class":347},"addres",[338,711,712],{"class":683},"s",[338,714,715],{"class":357},">\n",[164,717,718,719,305,722,274,725,327],{},"Keys are read from the prompt, or you can provide them with ",[168,720,721],{},"DANIO_S3_ACCESS_KEY",[168,723,724],{},"DANIO_S3_SECRET_KEY",[168,726,727],{},"DANIO_RECOVERY_KEY",[164,729,730,731,734],{},"Manage devices with ",[168,732,733],{},"danio device",". A device can be given by ID or name:",[188,736,737,745],{},[191,738,739],{},[194,740,741,743],{},[197,742,199],{},[197,744,202],{},[204,746,747,756,766,776],{},[194,748,749,753],{},[209,750,751],{},[168,752,733],{},[209,754,755],{},"The workspace's devices",[194,757,758,763],{},[209,759,760],{},[168,761,762],{},"danio device block|unblock \u003Cdevice>",[209,764,765],{},"Block, unblock",[194,767,768,773],{},[209,769,770],{},[168,771,772],{},"danio device access \u003Cdevice> none|viewer|station|admin",[209,774,775],{},"Change access: None, Viewer, Workstation, Admin",[194,777,778,783],{},[209,779,780],{},[168,781,782],{},"danio device render \u003Cdevice> on|off",[209,784,785],{},"Turn rendering on or off for that device. Takes effect the next time it contacts the host",[164,787,788,789,792,793,796],{},"Set the workspace's store with ",[168,790,791],{},"danio store add \u003Cname> \u003CSMB path or local path>"," and view it with ",[168,794,795],{},"danio store ls",". A workspace has only one store.",[176,798,800],{"id":799},"this-machine","This machine",[164,802,803],{},"These commands deal only with the computer you are using: starting with the computer, updating, uninstalling, checking the environment and changing this device's configuration.",[805,806,808],"h3",{"id":807},"service","Service",[188,810,811,819],{},[191,812,813],{},[194,814,815,817],{},[197,816,199],{},[197,818,202],{},[204,820,821,831,840,850,864],{},[194,822,823,828],{},[209,824,825],{},[168,826,827],{},"danio service",[209,829,830],{},"Whether danio starts with the computer and whether it is running",[194,832,833,837],{},[209,834,835],{},[168,836,289],{},[209,838,839],{},"Start with the computer (systemd on Linux, at sign-in on Windows), and start now",[194,841,842,847],{},[209,843,844],{},[168,845,846],{},"danio service uninstall",[209,848,849],{},"No longer start with the computer. A running danio isn't affected",[194,851,852,857],{},[209,853,854],{},[168,855,856],{},"danio service restart",[209,858,859,860,863],{},"Restart, switching to the new version ",[168,861,862],{},"danio upgrade"," downloaded",[194,865,866,871],{},[209,867,868],{},[168,869,870],{},"danio service stop",[209,872,873],{},"Stop the running danio",[805,875,877],{"id":876},"update-and-uninstall","Update and uninstall",[188,879,880,888],{},[191,881,882],{},[194,883,884,886],{},[197,885,199],{},[197,887,202],{},[204,889,890,899,909,923,937,947],{},[194,891,892,896],{},[209,893,894],{},[168,895,862],{},[209,897,898],{},"Update to the latest release",[194,900,901,906],{},[209,902,903],{},[168,904,905],{},"danio upgrade check",[209,907,908],{},"Only check whether there is a new version",[194,910,911,916],{},[209,912,913],{},[168,914,915],{},"danio upgrade list [--pre]",[209,917,918,919,922],{},"List releases; ",[168,920,921],{},"--pre"," includes pre-releases",[194,924,925,930],{},[209,926,927],{},[168,928,929],{},"danio upgrade \u003Cversion>",[209,931,932,933,936],{},"Switch to a specific version, such as ",[168,934,935],{},"0.2.0",". Going back works too",[194,938,939,944],{},[209,940,941],{},[168,942,943],{},"danio upgrade --from \u003Chost address>",[209,945,946],{},"Switch to the version that workspace's host is running",[194,948,949,954],{},[209,950,951],{},[168,952,953],{},"danio uninstall [--data] [--yes]",[209,955,956,957,960],{},"Stop danio and remove the program; ",[168,958,959],{},"--data"," removes the data too",[164,962,963,964,967,968,970,971,974],{},"When downloads from GitHub are slow, add ",[168,965,966],{},"--mirror \u003Caddress>"," to ",[168,969,862],{}," to use a download mirror, such as ",[168,972,973],{},"https:\u002F\u002Fmirror.example.com\u002F",". Without it, danio uses \"Download mirror\" from the settings.",[805,976,978],{"id":977},"check-and-configure","Check and configure",[188,980,981,989],{},[191,982,983],{},[194,984,985,987],{},[197,986,199],{},[197,988,202],{},[204,990,991,1001,1011,1021,1031,1044,1060],{},[194,992,993,998],{},[209,994,995],{},[168,996,997],{},"danio status [--json]",[209,999,1000],{},"Whether danio is running and where the data folder is",[194,1002,1003,1008],{},[209,1004,1005],{},[168,1006,1007],{},"danio doctor [--json]",[209,1009,1010],{},"Check whether this computer can submit and render",[194,1012,1013,1018],{},[209,1014,1015],{},[168,1016,1017],{},"danio doctor --fix",[209,1019,1020],{},"Print only the commands that install missing system libraries",[194,1022,1023,1028],{},[209,1024,1025],{},[168,1026,1027],{},"danio doctor --libs",[209,1029,1030],{},"Print only the install commands for system libraries Blender is missing",[194,1032,1033,1038],{},[209,1034,1035],{},[168,1036,1037],{},"danio config",[209,1039,1040,1041],{},"Show this device's configuration, ",[168,1042,1043],{},"config\u002Fdanio.toml",[194,1045,1046,1054],{},[209,1047,1048,490,1051],{},[168,1049,1050],{},"danio config get \u003Ckey>",[168,1052,1053],{},"set \u003Ckey> \u003Cvalue>",[209,1055,1056,1057],{},"Read or change one setting in this device's configuration, such as ",[168,1058,1059],{},"danio config set node.gpus 0,1",[194,1061,1062,1067],{},[209,1063,1064],{},[168,1065,1066],{},"danio version",[209,1068,1069],{},"Show the version",[164,1071,1072,1073,1076],{},"This device's configuration holds only this machine's own settings: cache folder, work folder, Blender path, and render machine settings (see ",[1074,1075,146],"a",{"href":147}," for the full reference). Project settings are in the project.",[176,1078,1080],{"id":1079},"plugins-and-api","Plugins and API",[164,1082,1083,1084,1086,1087,327],{},"Plugins run on the host, for example to send Feishu or Slack notifications or sync with another system. To write one, see ",[1074,1085,155],{"href":156},"; for the API, see ",[1074,1088,151],{"href":152},[188,1090,1091,1099],{},[191,1092,1093],{},[194,1094,1095,1097],{},[197,1096,199],{},[197,1098,202],{},[204,1100,1101,1111,1121,1131,1141,1151,1165],{},[194,1102,1103,1108],{},[209,1104,1105],{},[168,1106,1107],{},"danio plugin [--json]",[209,1109,1110],{},"List plugins: state, version, permissions, latest error",[194,1112,1113,1118],{},[209,1114,1115],{},[168,1116,1117],{},"danio plugin add \u003Cnpm package | folder | .tgz>",[209,1119,1120],{},"Install. Shows the permissions it wants first, and enables it once you confirm",[194,1122,1123,1128],{},[209,1124,1125],{},[168,1126,1127],{},"danio plugin on|off|rm \u003Cplugin>",[209,1129,1130],{},"Enable, disable, delete",[194,1132,1133,1138],{},[209,1134,1135],{},[168,1136,1137],{},"danio plugin update",[209,1139,1140],{},"Reinstall all plugins from where each came from",[194,1142,1143,1148],{},[209,1144,1145],{},[168,1146,1147],{},"danio plugin config \u003Cplugin> [key=value]…",[209,1149,1150],{},"Change settings. Without values, it asks for each one",[194,1152,1153,1158],{},[209,1154,1155],{},[168,1156,1157],{},"danio openapi [--lang en]",[209,1159,1160,1161,1164],{},"Print the API description (OpenAPI 3.1 JSON); ",[168,1162,1163],{},"--lang en"," for the English version",[194,1166,1167,1172],{},[209,1168,1169],{},[168,1170,1171],{},"danio token new",[209,1173,1174,1175],{},"Generate a random token for ",[168,1176,1177],{},"DANIO_TOKEN",[176,1179,1181],{"id":1180},"environment-variables","Environment variables",[188,1183,1184,1193],{},[191,1185,1186],{},[194,1187,1188,1191],{},[197,1189,1190],{},"Variable",[197,1192,202],{},[204,1194,1195,1205,1223,1233,1242],{},[194,1196,1197,1202],{},[209,1198,1199],{},[168,1200,1201],{},"DANIO_PORT",[209,1203,1204],{},"The port of this device's interface",[194,1206,1207,1212],{},[209,1208,1209],{},[168,1210,1211],{},"DANIO_ADDRESS",[209,1213,1214,1215,1218,1219,1222],{},"The address of this device's interface, listening only on ",[168,1216,1217],{},"127.0.0.1"," by default. Written the same way as for ",[168,1220,1221],{},"danio workspace address",", with several separated by commas",[194,1224,1225,1230],{},[209,1226,1227],{},[168,1228,1229],{},"DANIO_HOME",[209,1231,1232],{},"Where the whole data folder goes",[194,1234,1235,1239],{},[209,1236,1237],{},[168,1238,1177],{},[209,1240,1241],{},"The local token, which you can paste on the web sign-in page",[194,1243,1244,1249],{},[209,1245,1246],{},[168,1247,1248],{},"DANIO_TOKEN_FILE",[209,1250,1251,1252],{},"Read the local token from a file instead of ",[168,1253,1177],{},[164,1255,1256,1257,1259],{},"For example, set ",[168,1258,1211],{}," when you want to open a server's danio web interface from another computer.",[164,1261,1262,1264,1265,1268,1269,1272,1273,327],{},[168,1263,1229],{}," contains the workspace database. It must be on a local disk, not pointed at an SMB or NFS share. The Docker image already sets ",[168,1266,1267],{},"DANIO_HOME=\u002Fdata",", so just mount a folder on a local volume of the NAS to ",[168,1270,1271],{},"\u002Fdata",". See ",[1074,1274,45],{"href":46},[1276,1277,1278],"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 .sAklC, html code.shiki .sAklC{--shiki-default:#89DDFF}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);}html pre.shiki code .s0W1g, html code.shiki .s0W1g{--shiki-default:#BABED8}",{"title":334,"searchDepth":1280,"depth":1281,"links":1282},2,3,[1283,1284,1285,1286,1291,1292],{"id":178,"depth":1280,"text":179},{"id":293,"depth":1280,"text":294},{"id":506,"depth":1280,"text":507},{"id":799,"depth":1280,"text":800,"children":1287},[1288,1289,1290],{"id":807,"depth":1281,"text":808},{"id":876,"depth":1281,"text":877},{"id":977,"depth":1281,"text":978},{"id":1079,"depth":1280,"text":1080},{"id":1180,"depth":1280,"text":1181},"Open the interface, submit tasks, join workspaces and manage danio on this machine from a terminal.","md",{},{"icon":144},{"title":141,"description":1293},"FLul3vdkdpVfbKi0uLd6VM23meSXCPdYytPqt1AIxkk",[1300,1302],{"title":130,"path":131,"stem":132,"description":1301,"icon":133,"children":-1},"What plugins can do, and how to install and manage them.",{"title":146,"path":147,"stem":148,"description":1303,"icon":149,"children":-1},"What every setting in danio.toml means, its allowed values and defaults, and the environment variables danio reads.",1794619223480]