Files
2026-06-09 18:40:21 +02:00

128 lines
3.8 KiB
Markdown

---
title: ZoneMinder
created: 2026-06-08
updated: 2026-06-08
type: app
tags: [catalogue, nvr, app-marathon-batch-c]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=NVR&app=zoneminder, https://zoneminder.com/]
---
# 📹 ZoneMinder
> **Vétéran des NVR open source** : depuis 2003, support massif de caméras IP/USB, Linux natif, ultra-stable.
## 📋 Informations Générales
| Champ | Valeur |
| :--- | :--- |
| **Site web** | [zoneminder.com](https://zoneminder.com/) |
| **GitHub** | [ZoneMinder/zoneminder](https://github.com/ZoneMinder/zoneminder) |
| **License** | GPL-2.0 |
| **Langage** | C++ / Perl / PHP |
| **Étoiles GitHub** | 5.2k ⭐ |
| **Catégorie** | [[cat-nvr\|NVR]] |
## 📝 Description
**ZoneMinder** est le **NVR open source le plus ancien** (2003), toujours activement maintenu.
-**Linux natif** : Ubuntu, Debian, Fedora, Arch
-**Multi-caméras** : IP, USB, RTSP, ONVIF
-**Détection mouvement** : par zones, filtrage fausses alertes
-**Enregistrement** : continu, motion, schedule
-**API + WebSocket** : intégrations
-**ZM NVR (zmNinja)** : app mobile populaire
-**zmeventnotification** : hook scripts, ML detection
-**Stable** : testé sur des millions de serveurs
-**MySQL/MariaDB** : stockage événements
- ⚠️ **UI austère** : fonctionnel mais pas moderne
- ⚠️ **Config complexe** : doc à connaître
**Différence vs Frigate** : ZoneMinder = mature, généraliste, CPU. Frigate = moderne, AI-first, GPU recommandé. Pour qui: utilisateurs Linux qui veulent **un NVR éprouvé** sans GPU.
## 🚀 Installation
### Docker Compose (recommandé)
```yaml
version: '3.8'
services:
zoneminder:
image: zoneminderhq/zoneminder:latest
container_name: zoneminder
restart: unless-stopped
environment:
- TZ=Europe/Paris
- PUID=1000
- PGID=1000
- ZM_DB_HOST=db
volumes:
- zoneminder_data:/config
- zoneminder_events:/var/cache/zoneminder/events
ports:
- 9081:80
depends_on:
- db
labels:
- "traefik.enable=true"
- "traefik.http.routers.zoneminder.rule=Host(`zm.example.com`)"
- "traefik.http.routers.zoneminder.entrypoints=websecure"
- "traefik.http.routers.zoneminder.tls.certresolver=letsencrypt"
db:
image: mysql:8.0
container_name: zoneminder-db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: changeme
MYSQL_DATABASE: zm
MYSQL_USER: zmuser
MYSQL_PASSWORD: changeme
volumes:
- zoneminder_db:/var/lib/mysql
volumes:
zoneminder_data:
zoneminder_events:
zoneminder_db:
```
## 🔄 Alternatives
### Open Source
- [[app-shinobi]] — NVR Node.js moderne
- [[app-frigate]] — NVR avec AI native
- [[app-viseron]] — NVR Python simple
- [[app-scrypted]] — Hub unifié
- [[app-unblink]] — NVR simple
- [[app-blue-iris]] — Référence Windows (propriétaire)
### Propriétaires
- **Blue Iris** — Référence Windows, ~70$
- **Synology Surveillance Station** — Inclus NAS
- **Hikvision iVMS** — Cloud
- **Milestone XProtect** — Enterprise
## 🔐 Sécurité
- **Auth intégrée** : login/password, **2FA non natif**
- **HTTPS** : obligatoire via Traefik
- **MySQL** : sauvegarder régulièrement
- **API** : tokens à générer
- **CVE anciens** : tenir à jour (Perl/PHP)
- **Network** : VLAN IoT pour caméras
- **Logs** : filtrer les accès
## 📚 Ressources
- [Site officiel](https://zoneminder.com/)
- [Documentation](https://zoneminder.readthedocs.io/)
- [zmNinja (mobile)](https://github.com/pliablepixels/zmNinja)
## Pages Liées
- [[cat-nvr]] — Catégorie NVR
- [[app-frigate]] — Concurrent moderne
- [[app-shinobi]] — Concurrent Node.js
- [[recettes-docker-compose]] — Templates Docker
- [[cameras-rtsp-compatibles]] — Liste caméras