[{"data":1,"prerenderedAt":337},["ShallowReactive",2],{"docs-nav:docs_en":3,"docs-page:\u002Fen\u002Fdocs\u002Fconcepts\u002Fplugins":158,"docs-surround:\u002Fen\u002Fdocs\u002Fconcepts\u002Fplugins":332},[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":130,"body":160,"description":326,"extension":327,"meta":328,"navigation":329,"path":131,"seo":330,"stem":132,"__hash__":331},"docs_en\u002Fen\u002Fdocs\u002F2.concepts\u002F11.plugins.md",{"type":161,"value":162,"toc":316},"minimark",[163,167,177,183,188,214,217,221,232,259,265,269,272,302,309],[164,165,130],"h2",{"id":166},"plugins",[168,169,170,171,176],"p",{},"A plugin is a program installed on the ",[172,173,175],"a",{"href":174},"\u002Fen\u002Fdocs\u002Fconcepts\u002Fworkspace#host","host"," that adds things to the workspace that danio itself doesn't do, such as sending notifications, syncing with other systems or delivering films to a cloud drive.",[168,178,179,180,182],{},"Plugins run only on the host. Artists' computers and render machines don't install anything and don't run plugins. danio doesn't ship with any plugins for now. Install ones your studio wrote or ones others have published (for how to author a plugin, see ",[172,181,155],{"href":156},").",[184,185,187],"h3",{"id":186},"what-plugins-can-do","What plugins can do",[189,190,191,199],"ul",{},[192,193,194,198],"li",{},[195,196,197],"strong",{},"Subscribe to events",": when a task is submitted, a chunk finishes or fails, a task needs attention, a film is joined or a new device joins, the plugin is notified and can forward it to places like a Slack or Feishu group.",[192,200,201,204,205,209,210,213],{},[195,202,203],{},"Deliver films",": once a film is joined, it is handed to the plugin, which uploads it to a cloud drive or elsewhere. The result shows under ",[206,207,208],"ui",{},"Delivery"," in the task details, and if it failed, you can click ",[206,211,212],{},"Send again",".",[168,215,216],{},"What a plugin can do to the workspace is limited by the permissions it declares. But it runs on the host with danio's privileges, so it can access the network and read and write files. Only install plugins you trust.",[184,218,220],{"id":219},"installing","Installing",[168,222,223,224,227,228,231],{},"Plugins are managed under ",[206,225,226],{},"Workspace details"," → ",[206,229,230],{},"Plugins and integrations",". This needs admin access.",[233,234,235,247,250],"ol",{},[192,236,237,238,241,242,246],{},"Click ",[206,239,240],{},"Add plugin"," and enter an npm package name, or a folder or ",[243,244,245],"code",{},".tgz"," file on the host.",[192,248,249],{},"Once it is installed, a confirmation lists the workspace permissions it wants.",[192,251,237,252,255,256,213],{},[206,253,254],{},"Enable",". If you don't want to use it yet, click ",[206,257,258],{},"Not now",[168,260,261,262,213],{},"The first time the host runs a plugin, it downloads Bun automatically, so you don't need to install it. You can also install from the host's terminal with ",[243,263,264],{},"danio plugin add \u003Cpackage name or path>",[184,266,268],{"id":267},"managing","Managing",[168,270,271],{},"Each plugin has a row showing its version, state, the events it subscribes to, and any required settings that aren't filled in yet.",[189,273,274,281,296],{},[192,275,276,277,280],{},"Use the switch on the right to enable it or ",[206,278,279],{},"Disable"," it. Each time you enable it again, you confirm its permissions again.",[192,282,283,284,287,288,291,292,295],{},"The menu has ",[206,285,286],{},"Settings…",", ",[206,289,290],{},"Log"," and ",[206,293,294],{},"Delete",". Deleting it also deletes its settings and data.",[192,297,298,301],{},[206,299,300],{},"Update all"," reinstalls all plugins from where each came from.",[168,303,304,305,213],{},"Plugin settings live in the host's database, so plugins keep running after you ",[172,306,308],{"href":307},"\u002Fen\u002Fdocs\u002Fconcepts\u002Fbackup#changing-hosts","change hosts",[168,310,311,312,213],{},"Further down the same page are integration tokens, for scripts on other computers to call the host's API. See ",[172,313,315],{"href":314},"\u002Fen\u002Fdocs\u002Fconcepts\u002Fjoining#tokens","Tokens",{"title":317,"searchDepth":318,"depth":319,"links":320},"",2,3,[321],{"id":166,"depth":318,"text":130,"children":322},[323,324,325],{"id":186,"depth":319,"text":187},{"id":219,"depth":319,"text":220},{"id":267,"depth":319,"text":268},"What plugins can do, and how to install and manage them.","md",{},{"icon":133},{"title":130,"description":326},"caDtuLOjvTlnZn8EjPzwDDmj0cWmHPYU3JgPiK87f_k",[333,335],{"title":125,"path":126,"stem":127,"description":334,"icon":128,"children":-1},"How the host's data is backed up, what the recovery key does, and how to take over when the host fails or needs to move.",{"title":141,"path":142,"stem":143,"description":336,"icon":144,"children":-1},"Open the interface, submit tasks, join workspaces and manage danio on this machine from a terminal.",1794619223480]