[{"data":1,"prerenderedAt":494},["ShallowReactive",2],{"docs-nav:docs_en":3,"docs-page:\u002Fen\u002Fdocs\u002Fguides\u002Fremote":158,"docs-surround:\u002Fen\u002Fdocs\u002Fguides\u002Fremote":489},[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":50,"body":160,"description":483,"extension":484,"meta":485,"navigation":486,"path":51,"seo":487,"stem":52,"__hash__":488},"docs_en\u002Fen\u002Fdocs\u002F1.guides\u002F07.remote.md",{"type":161,"value":162,"toc":475},"minimark",[163,172,177,194,198,238,243,264,268,278,289,299,302,311,356,359,363,379,398,404,425,429,435,442,446,471],[164,165,166,167,171],"p",{},"When all your devices are on one local network, there is nothing to set up. When some are outside, for example artists submitting from home or render machines rented in the cloud, you need two things: a store everyone can reach, which means S3, and an ",[168,169,170],"code",{},"https:\u002F\u002F"," address for the host.",[173,174,176],"h2",{"id":175},"what-you-need","What you need",[178,179,180,184,191],"ul",{},[181,182,183],"li",{},"S3-compatible object storage, such as AWS S3, Cloudflare R2 or MinIO, with a bucket and access keys created.",[181,185,186,187,190],{},"A domain, such as ",[168,188,189],{},"danio.example.com",".",[181,192,193],{},"The ability to install Caddy or cloudflared on the machine running the host. The host can also be a rented server.",[173,195,197],{"id":196},"switch-the-store-to-s3","Switch the store to S3",[164,199,200,201,205,206,209,210,209,213,216,217,220,221,225,226,229,230,233,234,237],{},"When you create a workspace, choose ",[202,203,204],"ui",{},"S3"," right away and fill in ",[202,207,208],{},"Endpoint",", ",[202,211,212],{},"Bucket",[202,214,215],{},"Access Key"," and ",[202,218,219],{},"Secret Key",". We recommend Cloudflare R2 (zero egress fees, see ",[222,223,224],"a",{"href":42},"Configuring R2","); set its ",[202,227,228],{},"Region"," to ",[168,231,232],{},"auto",". Self-hosted services such as MinIO usually need ",[202,235,236],{},"Path-style"," turned on.",[164,239,240,241,190],{},"For spinning up cloud nodes, see ",[222,242,36],{"href":37},[164,244,245,246,249,250,253,254,256,257,259,260,263],{},"For a workspace already using a shared folder, click ",[202,247,248],{},"Move to…"," under ",[202,251,252],{},"Workspace details"," → ",[202,255,87],{}," and choose ",[202,258,204],{},". You can keep submitting and rendering during the move, with no need to stop (",[222,261,87],{"href":262},"\u002Fen\u002Fdocs\u002Fconcepts\u002Fstorage#store",").",[173,265,267],{"id":266},"set-up-https-for-the-host","Set up HTTPS for the host",[164,269,270,271,273,274,277],{},"The host itself speaks only HTTP. HTTPS is handled by a reverse proxy in front of it. Devices on the internet can only reach the host over ",[168,272,170],{},". ",[168,275,276],{},"http:\u002F\u002F"," works only on the local network.",[164,279,280,284,285,288],{},[281,282,283],"strong",{},"Caddy",", on the same machine as danio, in the ",[168,286,287],{},"Caddyfile",":",[290,291,297],"pre",{"className":292,"code":294,"language":295,"meta":296},[293],"language-text","danio.example.com {\n    reverse_proxy localhost:7420\n}\n","text","",[168,298,294],{"__ignoreMap":296},[164,300,301],{},"Caddy requests and renews the certificate itself.",[164,303,304,307,308,288],{},[281,305,306],{},"cloudflared",", when you don't want to open a port to the internet. Create a tunnel in Cloudflare and write ",[168,309,310],{},"config.yml",[290,312,316],{"className":313,"code":314,"language":315,"meta":296,"style":296},"language-yaml shiki shiki-themes material-theme-palenight","tunnel: \u003Ctunnel ID>\ncredentials-file: \u002Fetc\u002Fcloudflared\u002F\u003Ctunnel ID>.json\ningress:\n  - hostname: danio.example.com\n    service: http:\u002F\u002Flocalhost:7420\n  - service: http_status:404\n","yaml",[168,317,318,326,332,338,344,350],{"__ignoreMap":296},[319,320,323],"span",{"class":321,"line":322},"line",1,[319,324,325],{},"tunnel: \u003Ctunnel ID>\n",[319,327,329],{"class":321,"line":328},2,[319,330,331],{},"credentials-file: \u002Fetc\u002Fcloudflared\u002F\u003Ctunnel ID>.json\n",[319,333,335],{"class":321,"line":334},3,[319,336,337],{},"ingress:\n",[319,339,341],{"class":321,"line":340},4,[319,342,343],{},"  - hostname: danio.example.com\n",[319,345,347],{"class":321,"line":346},5,[319,348,349],{},"    service: http:\u002F\u002Flocalhost:7420\n",[319,351,353],{"class":321,"line":352},6,[319,354,355],{},"  - service: http_status:404\n",[164,357,358],{},"An nginx reverse proxy works too. danio tells it not to buffer the live progress on the page, so you don't need to change its configuration for that.",[173,360,362],{"id":361},"tell-the-host-its-address","Tell the host its address",[164,364,365,366,253,368,371,372,249,375,378],{},"On the host, open ",[202,367,252],{},[202,369,370],{},"Connection",", enter ",[168,373,374],{},"https:\u002F\u002Fdanio.example.com",[202,376,377],{},"Addresses"," and save.",[178,380,381,384,387],{},[181,382,383],{},"If you only enter the URL, the host still listens on all network interfaces, and devices on the local network connect as before.",[181,385,386],{},"Devices that have already joined switch to this URL automatically.",[181,388,389,390,393,394,397],{},"From then on, when you ",[202,391,392],{},"Add device",", this URL is listed under ",[202,395,396],{},"Host address",". Choose it for devices outside.",[164,399,400,401,403],{},"The ",[168,402,170],{}," URL provided by a cloud platform's custom service or reverse proxy can be entered the same way.",[164,405,406,407,253,410,413,414,416,417,420,421,424],{},"What success looks like: on a computer outside, you can join under ",[202,408,409],{},"Join a workspace",[202,411,412],{},"Token"," by entering ",[168,415,374],{}," and the token, and it shows as ",[202,418,419],{},"Online"," on the host's ",[202,422,423],{},"Devices"," page.",[173,426,428],{"id":427},"use-the-domain-on-the-local-network-too-optional","Use the domain on the local network too (optional)",[164,430,431,432,434],{},"To have office computers use ",[168,433,374],{}," as well, resolve the domain to the host in your router or internal DNS, and have Caddy request the certificate with DNS validation. You don't need to open a port to the internet.",[164,436,437,438,263],{},"If the host later moves to another machine, a workspace that uses a domain only needs the domain pointed at the new host. No device needs changing (",[222,439,441],{"href":440},"\u002Fen\u002Fdocs\u002Fconcepts\u002Fbackup#changing-hosts","Changing hosts",[173,443,445],{"id":444},"if-devices-cant-connect","If devices can't connect",[178,447,448,460],{},[181,449,450,451,453,454,456,457,459],{},"You entered ",[168,452,276],{}," with a public IP: devices refuse it, saying that public addresses must use ",[168,455,170],{},". Set up the reverse proxy and switch to the ",[168,458,170],{}," URL.",[181,461,462,463,253,465,467,468,190],{},"The reverse proxy can't reach the host: first check that ",[202,464,252],{},[202,466,370],{}," says it is listening on 7420, then see the ",[222,469,70],{"href":470},"\u002Fen\u002Fdocs\u002Fguides\u002Ffaq#other-computers-cant-connect-to-the-host",[472,473,474],"style",{},"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":296,"searchDepth":328,"depth":334,"links":476},[477,478,479,480,481,482],{"id":175,"depth":328,"text":176},{"id":196,"depth":328,"text":197},{"id":266,"depth":328,"text":267},{"id":361,"depth":328,"text":362},{"id":427,"depth":328,"text":428},{"id":444,"depth":328,"text":445},"Connect artists at home and render machines in the cloud to the same workspace by switching the store to S3 and putting the host behind HTTPS.","md",{},{"icon":53},{"title":50,"description":483},"0pKyAHyyKr8G2M5s7ohvOM4FnjN0hPNDNlJwnpyLF10",[490,492],{"title":45,"path":46,"stem":47,"description":491,"icon":48,"children":-1},"Run the host on a NAS with Docker, with a shared folder on the NAS as the store.",{"title":55,"path":56,"stem":57,"description":493,"icon":58,"children":-1},"Download films and fragments from a task, have films land on the NAS automatically, and set things up in advance if you need an image sequence.",1794627696229]