价格文档账号

把主机放到 NAS 上

用 Docker 在 NAS 上运行主机,存储就是 NAS 上的共享文件夹。

NAS 本来就一直开着,主机放在它上面,就不用专门留一台电脑开着。

你需要

  • 一台能运行 Docker 和 Docker Compose 的 NAS,x64 或 ARM64。
  • NAS 上两个位置:
    • 一个放 danio 数据的文件夹,在 NAS 自己的卷上,如 /volume1/docker/danio。
    • 一个空的共享文件夹当存储,办公室的电脑用 \\NAS\danio 打开它,在 NAS 上是 /volume1/danio。
数据文件夹必须在 NAS 本地的卷上,只让容器读写。不要把它指向 SMB 或 NFS 共享,也不要让别的电脑经共享打开它:工作区的数据库在网络共享上可能损坏。存储放在共享文件夹里没有问题。

写 compose.yaml

下载发布里附带的 compose.yaml,放进 NAS 上一个文件夹,改 volumes 里的两行映射:

    volumes:
      # danio 的数据:NAS 本地的卷
      - /volume1/docker/danio:/data
      # 存储所在的共享,按共享名挂在 /shares 下
      - /volume1/danio:/shares/danio
  • 冒号左边是 NAS 上的真实路径,按你的 NAS 改。
  • 存储的共享挂在 /shares/<共享名>。共享名是 \\NAS\ 后面的第一段:存储是 \\NAS\work\danio 时,挂的是整个共享,/volume1/work:/shares/work。
  • 美术引用的贴图、模型在别的共享上(如 \\NAS\projects),把它也照样挂进来。主机能直接读这些文件,不用每台美术电脑再读一遍。

其余的保持示例里的样子:主机网络模式(局域网里的电脑能自己找到主机)、出错和更新后自动重启。TZ 改成你的时区。

启动

在 compose.yaml 所在的文件夹里运行:

docker compose up -d

成功的样子:docker ps 里有一个叫 danio 的容器在运行。

登录并新建工作区

  1. 在办公室的电脑上用浏览器打开 http://<NAS 的 IP>:7421,出现 登录 danio。
  2. 在 NAS 上运行下面的命令,它打印一条一次性登录链接,10 分钟内有效。用浏览器打开这条链接。
    docker exec danio danio web --no-open
    
  3. 点 新建或接管工作区, 名称 填好, 存储 选 共享目录, 路径 填办公室电脑用的地址 \\NAS\danio。容器会在 /shares/danio 里找到它。
  4. 点 新建,把 恢复密钥 存到 NAS 以外的地方,再点 我已保存。

成功的样子:页面进入 任务; 工作区详情 → 连接 里写着正在监听,后面是 NAS 的地址和 7420 端口。

浏览器会记住登录 30 天。也可以在 compose.yaml 里给 DANIO_TOKEN 填一个至少 32 个字符的令牌,用它在登录页登录;留空时 danio 第一次启动自己生成一个,存在数据文件夹的 data/local-token 里。

关掉 NAS 上的渲染

新建工作区时,主机自己的 接收渲染 会打开。渲染交给渲染机时,在页面顶栏右侧把它关掉。

接下来照常加电脑:办公室的电脑见把办公室的电脑加进来,渲染机见快速上手。

更新

容器里的 danio 更新后自己退出,Docker 马上把它重新启动,用的就是新版本。更新装在数据文件夹里,重建容器也还在。

拉了更新的镜像(docker compose pull 后再 docker compose up -d)时,容器用镜像和数据文件夹里较新的那一份。

要用域名和 HTTPS(可选)

只在办公室里用,http://<NAS 的 IP>:7420 就够了。想用 https://danio.你的域名,或者让办公室外的设备连进来,在 NAS 上放一个反向代理,见设备不在一处。