# Déploiement sur TrueNAS Scale

À partir de TrueNAS Scale 24.10+ (Electric Eel), SCALE-Apps est passé de k3s à Docker, SkyView peut donc être déployé via un YAML d'application personnalisée. **Seule la version 24.10+ est concernée** ; pour l'ancienne voie k3s, mettez d'abord TrueNAS à jour.

## 1. Matériel pris en charge et variante recommandée

| Matériel | Variante recommandée | Remarques |
| --- | --- | --- |
| CPU Intel + iGPU | openvino | Le noyau TrueNAS inclut le pilote i915 par défaut |
| GPU NVIDIA (GTX/RTX) | cuda ou trt | Apps → Settings → GPU affiche la liste des GPU de l'hôte |
| CPU uniquement | cpu | L'inférence perd un cran, mais les fonctionnalités restent identiques |

> **⚠️ Docker n'est pris en charge qu'à partir de TrueNAS Scale 24.10**
>
> 24.04 et les versions antérieures utilisent k3s/Kubernetes ; le YAML d'application personnalisée de ce guide utilise le backend Docker et ne s'applique qu'à partir de la 24.10. Effectuez une sauvegarde selon le guide de migration officiel iX-systems avant de mettre à jour.

## 2. Prérequis

1. **Mettre à jour TrueNAS vers 24.10+**

   System Settings → Update → choisissez la branche 24.10-Electric-Eel et attendez la fin de la migration

2. **Créer un dataset ZFS**

   Datasets → choisissez un pool → créez un dataset yunkan-data, chemin du type /mnt/pool0/apps/yunkan/data ; le compose montera ensuite ce chemin sur /app/data

3. **Vérifier le GPU**

   Apps → Settings → GPU pour voir l'iGPU / NVIDIA détecté sur l'hôte et confirmer quelle variante utiliser

## 3. Récupérer le fichier compose

TrueNAS recommande un déploiement via un YAML d'application personnalisée (via l'interface), ou vous pouvez exécuter docker compose directement en SSH. Choisissez l'une des trois méthodes :

[Télécharger compose.yml](/compose/truenas.yml)

Modèle TrueNAS Scale 24.10+ · variante openvino · pensez à modifier le chemin du dataset

Ou via wget en SSH (pensez à modifier le chemin du dataset) :

```bash
ssh root@<TrueNAS IP>
cd /mnt/pool0/apps/yunkan
wget https://yun-kan.com/compose/truenas.yml -O compose.yml
# ★ Dans le fichier, remplacez /mnt/pool0/apps/yunkan/data par le chemin réel de votre dataset ★
```

> **💡 Méthode YAML d'application personnalisée (recommandée)**
>
> Interface TrueNAS → Apps → Discover Apps → Custom App en haut à droite → définissez App Name sur yunkan → collez la version minimale ci-dessous dans l'éditeur Workloads/YAML (pensez à remplacer /mnt/pool0/apps/yunkan/data par le chemin de votre 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
```

*compose.yml (minimal, remplacez le chemin du dataset avant de coller)*

## 4. Démarrer SkyView

**Option A · Custom App** : dans l'interface Apps, cliquez sur Save → Install et attendez que le statut passe à Running.

**Option B · SSH** :

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

Une fois démarré, ouvrez `http://<IP TrueNAS>:23406/` dans le navigateur (notez que l'interface TrueNAS est sur 80/443, sans conflit) pour accéder à l'[assistant de configuration](/docs/quickstart).

## 5. Ports et pare-feu

L'interface web TrueNAS Scale utilise 80/443 ; la famille de ports 23406 de SkyView n'entre pas en conflit. Scale n'a pas de pare-feu supplémentaire par défaut, et SCALE-Apps lie les ports directement via le réseau de l'hôte.

## 6. FAQ

> **⚠️ L'application a disparu après la mise à jour 24.04 → 24.10**
>
> La migration k3s → Docker peut faire disparaître l'ancienne Custom App ; redéployez selon ce guide (le volume de données est toujours dans le dataset ZFS, donc reconstruire le conteneur le restaure).

> **ℹ️ Erreurs /dev/dri dans le YAML de la Custom App TrueNAS**
>
> Vérifiez que l'interface TrueNAS → Apps → Settings → GPU a bien la case « Allow Containers to Access » cochée.

**Mise à jour :** mise à jour recommandée via l'interface Apps (Edit → changez le tag de l'image → Save) ; ou en SSH, `docker compose pull && docker compose up -d`.

---

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