# TrueNAS Scale 部署

TrueNAS Scale 24.10+(Electric Eel)起 SCALE-Apps 已从 k3s 切换到 Docker,云瞰通过 Custom App YAML 即可部署。**仅 24.10+ 适用**,旧版 k3s 路线请先升级 TrueNAS。

## 1. 适用机型 & 推荐变体

| 硬件 | 推荐变体 | 备注 |
| --- | --- | --- |
| Intel CPU + 核显 | openvino | TrueNAS 内核默认带 i915 驱动 |
| NVIDIA GPU(GTX/RTX) | cuda 或 trt | Apps → Settings → GPU 可看 host GPU 列表 |
| 纯 CPU | cpu | 推理速度降一档但功能不变 |

> **⚠️ TrueNAS Scale 24.10 起才支持 Docker**
>
> 24.04 及之前是 k3s/Kubernetes,本文档的 Custom App YAML 走 Docker backend,仅 24.10+ 适用。升级前请按 iX-systems 官方迁移指南做备份。

## 2. 准备工作

1. **升级 TrueNAS 到 24.10+**

   系统设置 → 更新 → 选 24.10-Electric-Eel train,等迁移完成

2. **建 ZFS dataset**

   Datasets → 选个池 → 新建 yunkan-data dataset,路径形如 /mnt/pool0/apps/yunkan/data;后面 compose 把这里挂到 /app/data

3. **查 GPU**

   Apps → Settings → GPU 看 host 上检测到的 iGPU / NVIDIA,确认要走的变体

## 3. 获取 compose 文件

TrueNAS 推荐用 Custom App YAML 部署(走 UI),也可直接 SSH 跑 docker compose。三种获取方式任选其一:

[浏览器下载 compose.yml](/compose/truenas.yml)

TrueNAS Scale 24.10+ 专用 · openvino 变体 · 注意改 dataset 路径

或 SSH 用 wget(记得修改 dataset 路径):

```bash
ssh root@<TrueNAS IP>
cd /mnt/pool0/apps/yunkan
wget https://yun-kan.com/compose/truenas.yml -O compose.yml
# ★ 文件里 /mnt/pool0/apps/yunkan/data 改成你的真实 dataset 路径 ★
```

> **💡 Custom App YAML 方式(推荐)**
>
> TrueNAS UI → Apps → Discover Apps → 右上角 Custom App → App Name 填 yunkan → 在 Workloads/YAML 编辑器粘贴下面最小版(注意把 /mnt/pool0/apps/yunkan/data 换成你的 dataset 路径)。

```yaml
name: yunkan

services:
  yunkan:
    image: registry.cn-hangzhou.aliyuncs.com/yunkan/yunkan-openvino:latest
    container_name: yunkan
    restart: always
    network_mode: host
    devices:
      - /dev/dri:/dev/dri
    volumes:
      - /mnt/pool0/apps/yunkan/data:/app/data
      - /mnt/pool0/apps/yunkan/recordings:/app/data/recordings
      - /etc/machine-id:/etc/machine-id:ro
      - /sys/class/dmi/id/product_uuid:/sys/class/dmi/id/product_uuid:ro
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - TZ=Asia/Shanghai
      - SKYVIEW_SELF_CONTAINER_NAME=yunkan
  updater:
    image: registry.cn-hangzhou.aliyuncs.com/yunkan/yunkan-updater:latest
    container_name: yunkan-updater
    restart: always
    network_mode: none
    volumes:
      - /mnt/pool0/apps/yunkan/data:/app/data
      - /mnt/pool0/apps/yunkan/compose.yml:/app/compose.yml:ro
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - TZ=Asia/Shanghai
      - COMPOSE_PROJECT_NAME=yunkan
      - STATE_FILE=/app/data/.upgrade-state
      - SKYVIEW_COMPOSE_FILE=/app/compose.yml
      - SKYVIEW_COMPOSE_SERVICE=yunkan
```

*compose.yml (最小版,粘贴前替换 dataset 路径)*

## 4. 启动云瞰

**方式 A · Custom App**:Apps UI 里点 Save → Install,等状态变 Running。

**方式 B · SSH**:

```bash
cd /mnt/pool0/apps/yunkan
docker compose up -d
docker logs -f yunkan
```

启动后浏览器 `http://<TrueNAS IP>:23406/`(注意 TrueNAS UI 在 80/443,不冲突)进入 [Setup 向导](/docs/quickstart)。

## 5. 端口和防火墙

TrueNAS Scale Web UI 占用 80/443,云瞰 23406 系列无冲突。Scale 默认无额外防火墙,SCALE-Apps 走 host network 直接绑端口。

## 6. 常见问题

> **⚠️ 升级 24.04 → 24.10 后 App 不在了**
>
> k3s → Docker 迁移可能让旧 Custom App 不见,需要按本文档重新部署(数据卷仍在 ZFS dataset 里,重建容器即可恢复)。

> **ℹ️ /dev/dri 在 TrueNAS Custom App YAML 里报错**
>
> 确认 TrueNAS UI → Apps → Settings → GPU 已勾选 Allow Containers to Access。

**升级**:推荐通过 Apps UI 升级(Edit → 改 image tag → Save);或 SSH `docker compose pull && docker compose up -d`。

---

来源:https://yun-kan.com/zh-TW/docs/install-truenas
