[{"data":1,"prerenderedAt":526},["ShallowReactive",2],{"docs-nav:docs_en":3,"docs-page:\u002Fen\u002Fdocs\u002Fconcepts\u002Fjoining":158,"docs-surround:\u002Fen\u002Fdocs\u002Fconcepts\u002Fjoining":521},[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":115,"body":160,"description":515,"extension":516,"meta":517,"navigation":518,"path":116,"seo":519,"stem":117,"__hash__":520},"docs_en\u002Fen\u002Fdocs\u002F2.concepts\u002F08.joining.md",{"type":161,"value":162,"toc":507},"minimark",[163,168,178,293,338,342,350,353,383,398,401,404,407,476,479,487],[164,165,167],"h2",{"id":166},"ways-to-join","Ways to join",[169,170,171,172,177],"p",{},"There are several ways for a device to get into a ",[173,174,176],"a",{"href":175},"\u002Fen\u002Fdocs\u002Fconcepts\u002Fworkspace#workspace","workspace",". Pick one based on the machine.",[179,180,181,197],"table",{},[182,183,184],"thead",{},[185,186,187,191,194],"tr",{},[188,189,190],"th",{},"Way",[188,192,193],{},"Good for",[188,195,196],{},"How",[198,199,200,224,239,256,278],"tbody",{},[185,201,202,206,209],{},[203,204,205],"td",{},"Install command",[203,207,208],{},"New machines, servers without a desktop, several at once",[203,210,211,212,216,217,216,220,223],{},"On the host, ",[213,214,215],"ui",{},"Devices"," → ",[213,218,219],{},"Add device",[213,221,222],{},"Create token",", then run the command on that machine",[185,225,226,229,232],{},[203,227,228],{},"Join link",[203,230,231],{},"Sending in a chat app such as Slack or WeChat",[203,233,234,235,238],{},"The other person opens it, clicks ",[213,236,237],{},"Open with danio"," and confirms joining",[185,240,241,244,247],{},[203,242,243],{},"Local network + join password",[203,245,246],{},"Computers in the office",[203,248,249,216,252,255],{},[213,250,251],{},"Join a workspace",[213,253,254],{},"Local network",", choose the workspace and enter the password",[185,257,258,261,264],{},[203,259,260],{},"Local network + approval",[203,262,263],{},"Computers in the office, when the host has no password",[203,265,266,267,270,271,274,275,277],{},"Choose the workspace and click ",[213,268,269],{},"Ask to join",", then click ",[213,272,273],{},"Approve"," on the host's ",[213,276,215],{}," page",[185,279,280,283,286],{},[203,281,282],{},"Token",[203,284,285],{},"Machines that already have danio installed",[203,287,288,216,290,292],{},[213,289,251],{},[213,291,282],{},", enter the host address and the token",[294,295,296,308,322,325],"ul",{},[297,298,299,300,303,304,307],"li",{},"To be found on the local network, the host must have ",[213,301,302],{},"Local discovery"," on, and both firewalls must allow UDP 7420. If the computers are on different subnets, use ",[213,305,306],{},"Find"," by address on the same page.",[297,309,310,311,314,315,216,318,321],{},"By default the host has no join password, so every local network join needs approval. To set one, fill in ",[213,312,313],{},"Join password"," under ",[213,316,317],{},"Workspace details",[213,319,320],{},"Connection",".",[297,323,324],{},"A request expires if nobody handles it within 10 minutes.",[297,326,327,328,331,332,314,335,337],{},"For devices that join over the local network, access and whether they accept renders follow ",[213,329,330],{},"Access after joining"," and ",[213,333,334],{},"Render after joining",[213,336,320],{},". The defaults are \"Workstation\" and not accepting renders.",[164,339,341],{"id":340},"tokens","Tokens",[169,343,344,345,349],{},"A token is a credential a device uses to connect to the host. It carries an ",[173,346,348],{"href":347},"#access","access"," level.",[169,351,352],{},"When a device joins with an install command or a join link, the token is in the command or link. When it joins over the local network, the host sends the token to the device automatically.",[294,354,355,362,368],{},[297,356,357,361],{},[358,359,360],"strong",{},"Single",": works only for the first machine that joins with it. Copied to another machine, it doesn't work. Revoking it disconnects that device immediately.",[297,363,364,367],{},[213,365,366],{},"Multiple devices",": until revoked, any new machine can join with it. Good for starting several cloud servers at once. Revoking it only prevents new machines from joining; devices that have already joined remain connected and keep working.",[297,369,370,373,374,216,376,379,380,382],{},[358,371,372],{},"Integration tokens",": for scripts on other computers or other systems calling the host's API. Create them under ",[213,375,317],{},[213,377,378],{},"Plugins and integrations"," (see ",[173,381,151],{"href":152},").",[169,384,385,386,216,388,390,391,394,395,397],{},"Device tokens are under ",[213,387,215],{},[213,389,341],{},". Each shows when it was last used. Hold ",[213,392,393],{},"Revoke"," for 2 seconds. A single-device token disconnects that machine right away; a multi-device token keeps existing devices connected while rejecting any new device. ",[213,396,205],{}," opens the command created back then, so you don't need a new one when you start more servers a few days later.",[169,399,400],{},"A token appears in plain text in the command and stays in that machine's command history. If you suspect it has leaked, revoke it and add the device again.",[164,402,403],{"id":348},"Access",[169,405,406],{},"Access is what each device can do in the workspace. There are four levels, and each level includes everything the level below it can do.",[179,408,409,422],{},[182,410,411],{},[185,412,413,416,419],{},[188,414,415],{},"Level",[188,417,418],{},"What it can do",[188,420,421],{},"Usually for",[198,423,424,437,450,463],{},[185,425,426,431,434],{},[203,427,428],{},[213,429,430],{},"None",[203,432,433],{},"Can't see projects or tasks; only renders the chunks given to it",[203,435,436],{},"Render machines, rented servers",[185,438,439,444,447],{},[203,440,441],{},[213,442,443],{},"Viewer",[203,445,446],{},"Views projects, tasks, progress, previews, devices and usage; downloads films and fragments",[203,448,449],{},"Producers, directors",[185,451,452,457,460],{},[203,453,454],{},[213,455,456],{},"Workstation",[203,458,459],{},"Submits and updates tasks, controls the tasks it submitted; creates and edits projects",[203,461,462],{},"Artists' computers",[185,464,465,470,473],{},[203,466,467],{},[213,468,469],{},"Admin",[203,471,472],{},"Controls everyone's tasks; manages devices, the store, resource packs, cleanup, plugins and workspace settings",[203,474,475],{},"The host, the person in charge",[169,477,478],{},"The device that creates the workspace is \"Admin\", and the host itself is always \"Admin\".",[169,480,481,482,486],{},"Rendering isn't controlled by access: every device can render, and whether it does is decided by its ",[173,483,485],{"href":484},"\u002Fen\u002Fdocs\u002Fconcepts\u002Fworkspace#accepting-renders","Render"," switch. So \"None\" is enough for a machine that only renders. It picks up chunks and hands in results without seeing your projects.",[294,488,489,499,504],{},[297,490,491,492,216,495,498],{},"Change access under ",[213,493,494],{},"Overview",[213,496,497],{},"Access and rendering"," in the device details. It takes effect right away.",[297,500,501,502,321],{},"Choose it when you add the device. For render servers, choose ",[213,503,430],{},[297,505,506],{},"Devices with \"None\" access can still read and write the store, because rendering needs it. Put machines you don't trust in a separate workspace with a separate store.",{"title":508,"searchDepth":509,"depth":510,"links":511},"",2,3,[512,513,514],{"id":166,"depth":509,"text":167},{"id":340,"depth":509,"text":341},{"id":348,"depth":509,"text":403},"How devices join a workspace, what tokens are, and what each access level can do.","md",{},{"icon":118},{"title":115,"description":515},"_EOMN4QsxBbwLZLUZlke6x8GMR_k1d3aa1phbljSFGQ",[522,524],{"title":110,"path":111,"stem":112,"description":523,"icon":113,"children":-1},"What resource packs are, and which Blender and which FFmpeg are used for rendering.",{"title":120,"path":121,"stem":122,"description":525,"icon":123,"children":-1},"How many devices in a workspace can render at the same time, and how a license adds seats.",1794619223480]