PricingDocsAccount

Run the host on a NAS

Run the host on a NAS with Docker, with a shared folder on the NAS as the store.

A NAS is on all the time anyway. Put the host on it, and you don't need to keep a computer running just for that.

What you need

  • A NAS that can run Docker and Docker Compose, x64 or ARM64.
  • Two locations on the NAS:
    • A folder for danio's data, on the NAS's own volume, such as /volume1/docker/danio.
    • An empty shared folder for the store. Office computers open it as \\NAS\danio, and on the NAS it is /volume1/danio.
The data folder must be on a local volume of the NAS, and only the container should read and write it. Don't point it at an SMB or NFS share, and don't let other computers open it through a share: the workspace database can be corrupted on a network share. Keeping the store in a shared folder is fine.

Write compose.yaml

Download the compose.yaml that comes with each release, put it in a folder on the NAS, and change the two mappings under volumes:

    volumes:
      # danio's data: a local volume on the NAS
      - /volume1/docker/danio:/data
      # the share holding the store, mounted under /shares by share name
      - /volume1/danio:/shares/danio
  • The left side of the colon is the real path on the NAS. Change it to match your NAS.
  • The share holding the store is mounted at /shares/<share name>. The share name is the first part after \\NAS\: if the store is \\NAS\work\danio, mount the whole share, /volume1/work:/shares/work.
  • If the textures and models artists reference are on another share (such as \\NAS\projects), mount it the same way. The host can then read those files directly, so each artist's computer doesn't have to read them again.

Keep the rest as in the example: host network mode (so computers on the local network find the host on their own), and automatic restart after errors and updates. Change TZ to your time zone.

Start

In the folder with compose.yaml, run:

docker compose up -d

What success looks like: docker ps shows a running container named danio.

Sign in and create a workspace

  1. On an office computer, open http://<NAS IP>:7421 in a browser. You see Sign in to danio.
  2. On the NAS, run the command below. It prints a one-time sign-in link that is valid for 10 minutes. Open the link in the browser.
    docker exec danio danio web --no-open
    
  3. Click Create or take over a workspace, fill in Name, choose Shared folder as the Store, and under Path enter the address office computers use, \\NAS\danio. The container finds it in /shares/danio.
  4. Click Create, store the Recovery key somewhere other than the NAS, then click I’ve saved it.

What success looks like: the page goes to Tasks, and Workspace details → Connection says it is listening, followed by the NAS's address and port 7420.

The browser remembers the sign-in for 30 days. You can also set DANIO_TOKEN in compose.yaml to a token of at least 32 characters and use it to sign in on the sign-in page. If you leave it empty, danio generates one the first time it starts and saves it in data/local-token in the data folder.

Turn off rendering on the NAS

When you create a workspace, the host's own Render is turned on. If the render machines will do the rendering, turn it off on the right of the page's top bar.

Then add computers as usual: for office computers, see Add the office computers; for render machines, see the Quick start.

Updates

When danio in the container updates, it exits by itself, and Docker restarts it right away on the new version. The update is installed in the data folder, so it stays even if you recreate the container.

If you pull a newer image (docker compose pull, then docker compose up -d), the container uses whichever is newer, the image or the copy in the data folder.

Use a domain and HTTPS (optional)

If you only use it in the office, http://<NAS IP>:7420 is enough. If you want https://danio.your-domain, or want devices outside the office to connect, put a reverse proxy on the NAS. See Devices in different places.