[Article] Installation de Frigate sur Proxmox

Bonjour,

Ayant pas mal erré pour faire bien fonctionner Frigate de A à Z et ayant bénéficié de beaucoup d’aide des forums (en particulier celui-ci) je me suis dit que j’allais mettre au propre toutes les étapes qui, au final, ont fait que ça a fini par marcher, et même bien marcher.

Je me suis alors décidé à rédiger un article qui reprend l’installation de Frigate en Docker, sur un container LXC Proxmox

N’hésitez pas à faire vos retours et commentaires.
Bonne lecture.

11 « J'aime »

Bravo !!!
Il a fallut du temps pour faire ca et c’est une très bonne base de départ !
Merci pour ceux qui cherche !

Je remets ici aussi, mais je trouve que le montage NFS peut être grandement amélioré en le mettant dans le docker directement, plutôt que d’installer moultes choses sur le noeud et à l’intérieur du LXC. là on se sert de l’outil docker directement qui propose l’option de montage de volume NFS , j’en parle là où j’expose le contenu de mon docker-compose:

2 « J'aime »

Merci beaucoup, ça m’a bien aidé pour le démarrage de frigate

Juste une toute petite remarque de rien du tout, le fichier est créé avec l’extension yaml et est ensuite appelé avec l’extension yml

1 « J'aime »

pour info, sur le site de tteck, l’auteur a ajouté récemment la création automatique d’un containeur LXC pour Frigate

3 « J'aime »

Bonjour,

J’ai été voir le script de tteck pour essayer de comprendre ce qu’il faisait vraiment,
on voit clairement que ça crée un container LXC, mais je ne vois pas s’il mets ensuite Docker puis frigate comme moi, ou s’il a trouvé un moyen de mettre Frigate directement sur LXC…

Ensuite coté Coral, dans son github build.func, il y a une étape ou ça créé les USB passthrough,
donc ca couvre une bonne partie des instructions.

# USB passthrough
lxc.cgroup2.devices.allow: a
lxc.cap.drop:
lxc.cgroup2.devices.allow: c 188:* rwm
lxc.cgroup2.devices.allow: c 189:* rwm
lxc.mount.entry: /dev/serial/by-id  dev/serial/by-id  none bind,optional,create=dir
lxc.mount.entry: /dev/ttyUSB0       dev/ttyUSB0       none bind,optional,create=file
lxc.mount.entry: /dev/ttyUSB1       dev/ttyUSB1       none bind,optional,create=file
lxc.mount.entry: /dev/ttyACM0       dev/ttyACM0       none bind,optional,create=file
lxc.mount.entry: /dev/ttyACM1       dev/ttyACM1       none bind,optional,create=file
EOF
  fi

  if [ "$CT_TYPE" == "0" ]; then
    if [[ "$APP" == "Channels" || "$APP" == "Emby" || "$APP" == "Frigate" || "$APP" == "Jellyfin" || "$APP" == "Plex" || "$APP" == "Scrypted" || "$APP" == "Tdarr" || "$APP" == "Unmanic" ]]; then
      cat <<EOF >>$LXC_CONFIG
# VAAPI hardware transcoding
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.cgroup2.devices.allow: c 29:0 rwm
lxc.mount.entry: /dev/fb0 dev/fb0 none bind,optional,create=file
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file

A priori, rien de particulier pour les Coral en PCi.

Ensuite, la connexion à un NAS externe est sans doute à voir en dehors (les instructions de l’article peuvent guider).

Le mieux serait de faire un essai pour comparer et mentionner quelles étapes sont « remplacées » ou modifiées par le script.
Dès que j’ai le temps, ou si qq’un essaye avant, qu’il n’hésite à dire comment ça s’est passé, et je complèterai l’article en conséquence.

le script il est là (https://github.com/tteck/Proxmox/blob/main/install/frigate-install.sh)
il fait pas du docker

Bonjour, merci beaucoup pour ce guide qui m’a été très précieux (je débute complet) !
Simple détail, à la section « USB Coral » : /etc/pvs/lxc
Ce ne devrait pas être pve ?

2 « J'aime »

Bonjour, oui,
tu as raison ce devrait être pve.
Je corrige dès que j’ai accès à mon PC

Je voulais suivre ta config du montage du volume NFS en le mettant dans le docker directement car elle me parait plus pertinente que celle du tuto.

Au niveau de ton nas syno tu as fait la config avec un dossier partagé avec l’ip de ton docker on est d’accord ?
Car quand je lance mon docker compose je me retrouve avec l’erreur suivante :

WARN[0000] /opt/docker-compose.yaml: `version` is obsolete 
[+] Running 0/1
 ⠙ Container frigate  Starting                                                                                                                            0.1s 
Error response from daemon: error while mounting volume '/var/lib/docker/volumes/opt_nfs-frigate/_data': failed to mount local volume: mount :/volume1/frigate:/var/lib/docker/volumes/opt_nfs-frigate/_data, data: addr=192.168.2.2,nolock,soft: permission denied```

Pourtant j’ai bien autorisé sur le NAS…

Oui, absolument !

est-ce possible de voir le fichier docker compose ? je pense qu’il manque l’option d’écriture rw à la ligne addr=192.168.2.2,nolock,soft,rw

Merci pour ton retour rapide !
Il y’avait bien le rw.

J’y suis arrivé. Je ne sais pas pourquoi sur le nas le service NFS était en protocole maximum v3 j’ai passé en v4.1 et cela a fonctionné.

Il y’a un moyen de voir si le montage c’est bien fait ?

Car la j’ai bien des détections et des records mais tout est enregistré sur le disque rien sur le NAS…

Voici mon docker-compose

version: '3.9'

services:

  frigate:
    container_name: frigate
    privileged: true
    restart: unless-stopped
    image: ghcr.io/blakeblackshear/frigate:stable
    shm_size: "256mb" # update for your cameras based on calculation above
    devices:
      - /dev/bus/usb:/dev/bus/usb
      - /dev/dri/renderD128 # for intel hwaccel, needs to be updated for your hardware
    volumes:
      - /opt/frigate/config:/config/
      - /opt/frigate:/media/frigate
      - type: tmpfs # Optional: 1GB of memory, reduces SSD/SD Card wear
        target: /tmp/cache
        tmpfs:
          size: 1000000000
    ports:
      - "5000:5000"
      - "1935:1935" # RTMP feeds
volumes:  ## D  finition des volumes d  clar  s ci-dessus
  nfs-frigate: ## Le nom de mon volume en montage NFS
    driver: local
    driver_opts: ## D  finition des options du montage
      type: nfs ## Choix du type de montage
      o: addr=192.168.2.2,nolock,soft,rw ## Indication de l'adresse IP du stockage et des options d'acc  s
      device: :/volume1/frigate  ## Indication du chemin du montage sur le stockage

Dans opt/frigate j’ai les dossiers clips, export… avec les captures à l’intérieur

Tu l’as ta réponse non le montage n’a pas fonctionné
Il est d’ailleurs mieux de laisser nfsv3 bien plus ‹ ‹ compatible › › dans ton partage tu as bien autorisé l’IP de ta machine frigate ?
Je te conseille de tester de monter ton partage directement dans ta machine frigate afin de vérifier que cela fonctionne

Oui sur le dossier partagé du NAS j’ai bien autorisé l’ip de mon docker qui contient frigate.

Dans ton compose tu as cette ligne :

nfs-frigate:/media/frigate

nfs-frigate est un dossier de ton docker?

Par contre ton volume est défini mais il est pas monté
Il faut dans la partie volume monter ton volume que tu as défini

- nfs-frigate:/xxxxx
Ou /xxxx est le chemin dans ton conteneur

En fait dans mon compose quand je mets

nfs-frigate:/media/frigate

J’ai de nouveau l’erreur initiale qui revient :

WARN[0000] /opt/docker-compose.yaml: `version` is obsolete 
[+] Running 0/1
 ⠙ Container frigate  Starting                                                                                                                            0.1s 
Error response from daemon: error while mounting volume '/var/lib/docker/volumes/opt_nfs-frigate/_data': 
failed to mount local volume: mount :/volume1/frigate:/var/lib/docker/volumes/opt_nfs-frigate/_data, data: addr=192.168.2.2,nolock,soft: permission denied

Sur mon Nas voici la config NFS du dossier partagé
Capture d'écran 2024-05-15 214105

Testes déjà ton montage sur l’hôte

mount -vv 192.168.2.2:/Volume1/frigate /mnt

Je crois de tête de Volume1 prends un v majuscule sous Synology
Tu peux utiliser la commande showmount -e 192.168.2.2

Ne pas oublier installer les paquets nfs-client

Un grand merci !!!

Je n’avais pas installé les paquets nfs-client :sweat_smile: :sweat_smile: :sweat_smile:

Tu gères!!!

C’est tout bon montage est fait j’ai bien mon NAS dans le stockage de frigate

2 « J'aime »