Comment installer et configurer Frigate avec Docker : un guide complet

Dernière mise à jour : 15/09/2026

  • Docker Compose est la méthode recommandée pour installer Frigate.
  • Les meilleures performances sont obtenues avec Linux installé directement sur l'ordinateur.
  • L'accélération FFmpeg et la détection par IA sont des processus différents.
  • Le port 8971 fournit l'interface authentifiée ; le port 5000 est interne et ne dispose d'aucune authentification.
Frégate avec Docker pour la vidéosurveillance intelligente

Frigate vous permet de créer un système de vidéosurveillance local capable d'enregistrer les flux de caméras IP et d'utiliser des modèles d'intelligence artificielle pour détecter les personnes, les véhicules, les animaux et autres objets. Tout le traitement s'effectue au sein de votre réseau, sans envoi continu d'images aux serveurs du fabricant.

En plus d'offrir un meilleur contrôle de la confidentialité, Frigate vous permet de centraliser plusieurs caméras de surveillance, ne conservez que les enregistrements importants et générez des événements qui pourront être utilisés ultérieurement dans Home Assistant.

La méthode d'installation recommandée est par Docker ComposeCependant, Frigate n'est pas un conteneur classique : le décodage de plusieurs flux vidéo et l'exécution de modèles de détection consomment des ressources importantes. Pour une installation stable, une configuration adéquate du stockage, de la mémoire partagée, des flux vidéo des caméras et de l'accès matériel est essentielle.

Comment utiliser Frigate avec Home Assistant
Article connexe :
Guide complet pour intégrer Frigate à Home Assistant

De quel matériel et système d'exploitation avez-vous besoin ?

Matériel requis pour installer Frigate avec Docker

Frigate fonctionne mieux sur Docker installé directement sur une distribution Linux basée sur DebianCette configuration réduit la surcharge et facilite l'accès au GPU, à l'accélérateur d'IA et aux autres périphériques physiques.

Il est également possible de l'exécuter dans une machine virtuelle, mais vous devrez configurer correctement le transfert matériel. La documentation Proxmox recommande d'utiliser une machine virtuelle QEMU pour exécuter Docker. L'installation de Frigate dans un conteneur LXC est possible, mais non officiellement prise en charge et peut compliquer l'accès à certains périphériques. /dev/dri, une clé USB Coral ou une NPU.

Un Raspberry Pi peut convenir à une petite configuration, surtout si vous utilisez un accélérateur et un stockage externe. Cependant, ses performances dépendront du nombre de caméras, de la résolution, du codec et des fonctionnalités activées. Il faudra également faire attention à l'alimentation si vous connectez simultanément une carte réseau Coral USB et un SSD ; un hub USB alimenté pourrait alors s'avérer nécessaire.

Avant de commencer, vérifiez les exigences suivantes :

  • Un serveur Linux avec Docker et le plugin Docker Compose.
  • Une ou plusieurs caméras compatibles RTSP.
  • Une connexion réseau stable, de préférence via Ethernet.
  • Espace suffisant pour les enregistrements.
  • Un GPU, un NPU ou un accélérateur compatible est nécessaire si vous comptez utiliser la détection d'objets.
  • Un courtier MQTT n'est nécessaire que si vous souhaitez intégrer Frigate à Home Assistant.

Frigate utilise plusieurs chemins internes dont il faut tenir compte lors de la création du conteneur :

  • /config Il stocke le fichier de configuration, la base de données SQLite et d'autres données nécessaires.
  • /media/frigate Il contient les enregistrements, les captures et les exportations.
  • /tmp/cache enregistre temporairement les segments vidéo avant de les traiter.
  • /dev/shm Il stocke les trames décodées en mémoire.

Il est recommandé d'assembler /tmp/cache comme tmpfsAinsi, les segments temporaires sont écrits dans la RAM, ce qui réduit les écritures inutiles sur le SSD. Le mappage manuel n'est pas nécessaire. /dev/shmSa capacité est contrôlée par le paramètre shm_size de Docker.

Comment calculer la mémoire partagée d'une frégate

Docker alloue généralement 64 Mo de mémoire partagée à chaque conteneur. Frigate utilise cet espace pour stocker les images décodées ; cette quantité peut donc s’avérer insuffisante lorsque plusieurs caméras sont connectées.

Lorsque la mémoire partagée est saturée, le conteneur peut s'arrêter et afficher le message. « Erreur de bus »Une valeur de 128 Mo est généralement suffisante pour deux caméras dont la détection est effectuée en 720p, mais les installations avec plus de caméras ou des flux à résolution plus élevée nécessiteront une quantité plus importante.

Contenu exclusif - Cliquez ici  Comment programmer une application Android

Le calcul dépend de la résolution du flux utilisé pour la détection, et non de la résolution de la vidéo utilisée pour l'enregistrement. Frigate propose la formule indicative suivante :

(anchura × altura × 1,5 × 20 + 270480) ÷ 1048576

Au total de toutes les caméras, il faut ajouter environ 40 Mo pour les journaux stockés en mémoire. Vous pouvez également utiliser le calculateur SHM disponible dans la documentation officielle.

Dans le fichier Docker Compose, le paramètre est saisi comme suit :

shm_size: "512mb"

512 Mo constituent un point de départ raisonnable pour une installation domestique avec plusieurs caméras, mais ce n'est pas une valeur obligatoire. Si le conteneur continue d'afficher un Erreur de bus Après avoir augmenté cette limite, vérifiez également les limites des processus et des fichiers ouverts.

domotique
Article connexe :
Gadgets domotiques : le guide ultime des meilleurs appareils pour la maison connectée en 2024

Accélération et détection vidéo grâce à l'intelligence artificielle

Dispositifs domotiques assurant l'accélération vidéo et la détection d'objets dans Frigate

Frigate remplit deux fonctions différentes qu'il ne faut pas confondre. D'une part, FFmpeg doit décoder les flux vidéoEn revanche, un détecteur exécute le modèle d'intelligence artificielle pour reconnaître les objets.

Le décodage peut être accéléré grâce à un GPU intégré Intel ou AMD, une carte graphique Nvidia ou tout autre matériel compatible. Cela implique de configurer les périphériques correspondants dans Docker et de définir les valeurs appropriées. hwaccel_args en frégate.

La détection d'objets peut être réalisée à l'aide de différents systèmes :

  • Google Coral Edge TPU : Disponible en versions USB, M.2 et Mini PCIe.
  • OpenVINO : Compatible avec les processeurs Intel, les GPU intégrés et les cartes Arc.
  • Hailo-8 et Hailo-8L : disponible pour les ordinateurs x86 et les cartes comme le Raspberry Pi 5.
  • Nvidia : en utilisant l'image spécifique Frigate compatible avec TensorRT.
  • AMD ROCm : pour certaines cartes graphiques AMD compatibles.
  • MemoryX MX3 : une option prise en charge par la communauté qui nécessite ses propres pilotes et composants supplémentaires.

Un détecteur à processeur est utile pour tester une installation, mais il n'est généralement pas le meilleur choix pour une utilisation permanente avec plusieurs caméras. La consommation d'énergie dépendra du modèle utilisé, de la résolution de détection, du nombre d'images par seconde et de la quantité de mouvement dans l'image.

Si vous utilisez une clé USB Coral, vous devrez généralement faire passer le bus USB au conteneur :

devices:
  - /dev/bus/usb:/dev/bus/usb

Pour un GPU Intel ou AMD basé sur VAAPI, un dispositif tel que le suivant est généralement utilisé :

devices:
  - /dev/dri/renderD128:/dev/dri/renderD128

Ces chemins d'accès peuvent varier selon le périphérique. Vérifiez-les sur l'hôte et n'ajoutez que les périphériques nécessaires. L'exécution permanente du conteneur avec des privilèges élevés facilite certains tests, mais elle octroie plus d'autorisations que nécessaire et n'est pas la solution la plus sûre pour une installation finale.

Comment installer Frigate avec Docker Compose étape par étape

Comment installer Frigate avec Docker Compose étape par étape

Créez deux dossiers permanents : un pour les paramètres et un pour les enregistrements. Vous pouvez utiliser, par exemple :

mkdir -p ~/frigate/config
mkdir -p ~/frigate/storage
cd ~/frigate

Ensuite, créez un fichier appelé compose.yaml avec cette configuration de base :

services:
  frigate:
    container_name: frigate
    image: ghcr.io/blakeblackshear/frigate:stable
    restart: unless-stopped
    stop_grace_period: 30s
    shm_size: "512mb"

    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./config:/config
      - ./storage:/media/frigate
      - type: tmpfs
        target: /tmp/cache
        tmpfs:
          size: 1000000000

    ports:
      - "8971:8971"
      - "8554:8554"
      - "8555:8555/tcp"
      - "8555:8555/udp"

    environment:
      FRIGATE_RTSP_PASSWORD: "CAMBIA_ESTA_CONTRASEÑA"

Cet exemple n'inclut aucun périphérique d'accélération car le chemin d'accès dépend du matériel utilisé. Si vous disposez d'un GPU, d'un Coral ou d'un NPU, ajoutez le bloc correspondant. devices correspondant avant de démarrer le conteneur.

L'étiquette stable Il fonctionne aussi bien sur les systèmes AMD64 que sur les Raspberry Pi ARM64, grâce à une version optimisée. Il n'est pas nécessaire de sélectionner manuellement une image différente pour un Raspberry Pi 64 bits. Les installations avec des processeurs Nvidia, ROCm ou certains processeurs Rockchip nécessitent des étiquettes spécifiques.

Contenu exclusif - Cliquez ici  Comment détecter si un site web vous bloque selon votre région

Commencez le conteneur par :

docker compose up -d

L'interface authentifiée sera disponible à l'adresse suivante :

https://IP_DEL_SERVIDOR:8971

Votre navigateur peut afficher un avertissement car Frigate utilise initialement un certificat auto-signé. Lors du premier démarrage, un compte administrateur et un mot de passe temporaire sont générés. Vous pouvez les récupérer avec :

docker logs frigate

Connectez-vous et modifiez votre mot de passe depuis Paramètres > UtilisateursLe nouveau mot de passe doit comporter au moins 12 caractères.

Frigate utilise également le port 5000 pour son interface interne et son API sans authentification. Il est déconseillé de le rendre public sur l'hôte ou de l'exposer sur Internet. Ce port est principalement destiné aux services communiquant avec Frigate au sein d'un réseau Docker sécurisé.

Le port 8554 permet d'accéder aux flux RTSP de go2rtc, et le port 8555 est utilisé pour les connexions WebRTC. Les flux RTSP ne sont pas authentifiés par défaut ; il est donc déconseillé de les exposer directement sur Internet.

Panneau de commande mural Home Assistant pour la gestion de la domotique
Article connexe :
Comment installer et utiliser Blueprints dans Home Assistant

Comment ajouter une caméra et configurer ses flux vidéo

Serveur pour le stockage et le traitement des enregistrements d'un système de vidéosurveillance avec Frigate

Avant d'ajouter une caméra, testez son adresse RTSP avec VLC ou un autre lecteur compatible. Si le flux ne fonctionne pas en dehors de Frigate, il ne fonctionnera pas non plus à l'intérieur du conteneur.

Vous pouvez ajouter une caméra à l'aide de l'assistant disponible dans Paramètres > Paramètres globaux > Gestion de la caméraVous pouvez également modifier directement le fichier. config.yml enregistré dans le répertoire monté dans /config.

La configuration la plus efficace utilise généralement deux flux :

  • Un sous-flux à résolution inférieure pour détecter les mouvements et les objets.
  • Un flux principal à plus haute résolution pour stocker les enregistrements.

Vous pouvez également déclarer les connexions d'origine dans go2rtc et configurer FFmpeg pour qu'il utilise leurs reflux locaux. Cela réduit le nombre de connexions directes ouvertes vers la caméra.

Un exemple simple serait le suivant :

mqtt:
  enabled: false

go2rtc:
  streams:
    entrada_principal:
      - rtsp://usuario:{FRIGATE_RTSP_PASSWORD}@192.168.1.50:554/stream1
    entrada_sub:
      - rtsp://usuario:{FRIGATE_RTSP_PASSWORD}@192.168.1.50:554/stream2

cameras:
  entrada:
    enabled: true

    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/entrada_sub
          input_args: preset-rtsp-restream
          roles:
            - detect

        - path: rtsp://127.0.0.1:8554/entrada_principal
          input_args: preset-rtsp-restream
          roles:
            - record

    detect:
      width: 1280
      height: 720

    record:
      enabled: true

Vous devez remplacer le nom d'utilisateur, l'adresse IP, le port et le chemin du flux par les valeurs correspondant à votre caméra. Le nom utilisé dans go2rtc doit également correspondre exactement à celui figurant dans l'URL locale.

Dans les versions actuelles, Frigate tente de détecter automatiquement la résolution. Toutefois, la définir explicitement peut faciliter le dépannage. L'utilisation d'une vidéo 4K pour la détection est inefficace si la caméra fournit un flux secondaire de résolution inférieure.

Après avoir enregistré le fichier, vérifiez la configuration directement depuis l'interface ou consultez les journaux du conteneur. En cas d'erreur d'indentation YAML, de chemin RTSP incorrect ou de rôle dupliqué, Frigate peut refuser la configuration.

Comment utiliser correctement les masques, les filtres et les zones

Les masques de mouvement ne sont pas conçus pour masquer complètement une zone, ni pour garantir qu'un objet ne sera plus détecté. Leur fonction est d'empêcher que certains changements d'image ne déclenchent le processus de détection.

Ils sont utiles pour des choses comme :

  • La date et l'heure affichées par l'appareil photo.
  • Le ciel ou la cime des arbres.
  • Un drapeau en perpétuel mouvement.
  • Reflets ou éléments répétitifs qui génèrent du mouvement.

Un objet peut être détecté à l'intérieur d'un masque de mouvement si une autre partie de l'image déclenche l'analyse. De plus, couvrir une trop grande surface rend le suivi d'objet difficile.

Contenu exclusif - Cliquez ici  Que faire si Windows détecte une menace lors de la connexion d'une clé USB ?

Si un mur, un arbre ou tout autre élément fixe est identifié à plusieurs reprises comme une personne, vous devez utiliser un masque de filtre pour ce type d'objetSi vous souhaitez uniquement recevoir des alertes lorsqu'une personne entre dans le jardin ou s'approche d'une porte, la solution appropriée consiste à créer une zone et à l'utiliser comme zone d'alerte obligatoire.

Frigate vous permet de dessiner ces polygones à partir de Paramètres > Paramètres de la caméra > Masques et zonesAvant d'ajouter un masque, utilisez la vue de débogage pour vérifier où apparaissent les boîtes de détection de mouvement.

Comment intégrer Frigate avec MQTT et Home Assistant

Frigate peut faire fonctionner et enregistrer des caméras sans utiliser MQTT. Cependant, L'intégration avec Home Assistant nécessite un courtier MQTT.Tout comme Mosquitto, Frigate et Home Assistant doivent se connecter au même serveur MQTT.

La configuration de base utilise ce format :

mqtt:
  enabled: true
  host: 192.168.1.20
  user: usuario_mqtt
  password: contraseña_mqtt

Après avoir vérifié que Frigate se connecte correctement au courtier, installez l'intégration officielle de HACS :

  1. Ouvrir HACS dans Home Assistant.
  2. Recherchez et installez l'intégration Frégate.
  3. Redémarrez Home Assistant.
  4. Entrer Paramètres > Appareils et services.
  5. Presse Ajouter l'intégration et sélectionnez Frégate.
  6. Saisissez l'adresse de l'instance.

Si Home Assistant et Frigate partagent un réseau Docker sécurisé, l'intégration peut communiquer via le port interne 5000. Dans les autres configurations, il est préférable d'utiliser le port authentifié 8971. N'ouvrez pas le port 5000 vers l'extérieur uniquement pour faciliter l'intégration.

Une fois connecté, Home Assistant peut utiliser les capteurs, les caméras et les événements générés par Frigate pour créer des automatisations. Par exemple, il peut envoyer une capture d'écran sur votre téléphone lorsqu'une personne entre dans une zone spécifique, allumer une lumière extérieure ou inclure un lien vers la vidéo enregistrée.

Comment utiliser Frigate avec Home Assistant
Article connexe :
Guide complet pour intégrer Frigate à Home Assistant

Comment vérifier et entretenir l'installation

Code Docker Compose utilisé pour configurer la mémoire partagée et les volumes de Frigate

Une fois l'installation terminée, vérifiez l'état du conteneur :

docker compose ps

Pour consulter les journaux en temps réel, utilisez :

docker compose logs -f frigate

Vérifiez plus précisément que :

  • Tous les flux RTSP s'ouvrent correctement.
  • Il n'y a pas de redémarrages constants de FFmpeg.
  • Le détecteur sélectionné est indiqué comme actif.
  • La mémoire partagée ne s'épuise pas.
  • Les enregistrements sont sauvegardés sur le trajet prévu.
  • Le disque dispose de suffisamment d'espace libre.

Pour mettre à jour Frigate à l'aide de Docker Compose, exécutez :

docker compose pull
docker compose up -d

Avant la mise à jour, enregistrez une copie du répertoire monté dans /configVous y trouverez le fichier YAML, la base de données et les autres paramètres nécessaires à la reconstruction de l'installation. Les enregistrements sont stockés dans /media/frigate Elles peuvent être sauvegardées séparément si vous souhaitez les conserver.

Évitez de publier directement les ports 5000, 1984 ou 8554 sur Internet. Pour accéder à Frigate depuis l'extérieur de votre réseau domestique, il est plus sûr d'utiliser un VPN ou un proxy inverse correctement configuré sur le port authentifié.

L'installation de Frigate avec Docker permet de créer un système de vidéosurveillance privé et adaptable, mais sa stabilité repose sur une configuration équilibrée. La séparation des flux de détection et d'enregistrement, l'ajustement de la mémoire partagée, l'utilisation de l'accélération disponible et la limitation de l'accès aux ports internes réduisent considérablement les erreurs et la consommation de ressources.

Une fois connecté à Home Assistant, le système peut utiliser les détections pour générer des notifications et des automatisations beaucoup plus précises que les alertes de mouvement classiques, tout en conservant les enregistrements au sein de votre propre infrastructure.

Article connexe :
Application de vidéosurveillance