把主机放到 NAS 上
用 Docker 在 NAS 上运行主机,存储就是 NAS 上的共享文件夹。
NAS 本来就一直开着,主机放在它上面,就不用专门留一台电脑开着。
你需要
- 一台能运行 Docker 和 Docker Compose 的 NAS,x64 或 ARM64。
- NAS 上两个位置:
- 一个放 danio 数据的文件夹,在 NAS 自己的卷上,如
/volume1/docker/danio。 - 一个空的共享文件夹当存储,办公室的电脑用
\\NAS\danio打开它,在 NAS 上是/volume1/danio。
- 一个放 danio 数据的文件夹,在 NAS 自己的卷上,如
数据文件夹必须在 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 的容器在运行。
登录并新建工作区
- 在办公室的电脑上用浏览器打开
http://<NAS 的 IP>:7421,出现 登录 danio。 - 在 NAS 上运行下面的命令,它打印一条一次性登录链接,10 分钟内有效。用浏览器打开这条链接。
docker exec danio danio web --no-open - 点 新建或接管工作区, 名称 填好, 存储 选 共享目录, 路径 填办公室电脑用的地址
\\NAS\danio。容器会在/shares/danio里找到它。 - 点 新建,把 恢复密钥 存到 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 上放一个反向代理,见设备不在一处。