125 lines
3.8 KiB
Markdown
125 lines
3.8 KiB
Markdown
---
|
|
title: Shinobi
|
|
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=shinobi, https://shinobi.video/]
|
|
---
|
|
|
|
# 📹 Shinobi
|
|
|
|
> **NVR open source performant** : enregistreur vidéo réseau avec support multi-caméras, streaming, détection de mouvement et timelapse.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [shinobi.video](https://shinobi.video/) |
|
|
| **GitHub** | [ShinobiCCTV/Shinobi](https://github.com/ShinobiCCTV/Shinobi) |
|
|
| **License** | GPL-2.0 |
|
|
| **Langage** | Node.js |
|
|
| **Étoiles GitHub** | 5.4k ⭐ |
|
|
| **Catégorie** | [[cat-nvr\|NVR]] |
|
|
|
|
## 📝 Description
|
|
|
|
**Shinobi** (anciennement ZoneMinder Node) est un **NVR moderne écrit en Node.js**.
|
|
|
|
- ✅ **Multi-caméras illimité** : RTSP, MJPEG, HLS
|
|
- ✅ **Détection mouvement** : par zone, sensibilité
|
|
- ✅ **Streaming** : HLS, MJPEG, WebSocket
|
|
- ✅ **Timelapse** : lecture accélérée
|
|
- ✅ **Multi-tenants** : plusieurs utilisateurs/permissions
|
|
- ✅ **API REST** complète
|
|
- ✅ **Apps mobiles** tierces (iOS/Android)
|
|
- ✅ **Cascade** : chaîner plusieurs instances
|
|
- ✅ **ONVIF** : découverte caméras
|
|
- ✅ **Dashboard web** moderne
|
|
|
|
**Différence vs ZoneMinder** : Shinobi = moderne Node.js, multi-tenant, UI soignée. ZoneMinder = vétéran C++/Perl, ultra-stable, plus austère. Pour qui: utilisateurs qui veulent un **NVR moderne** avec API et multi-utilisateurs.
|
|
|
|
## 🚀 Installation
|
|
|
|
### Docker Compose (recommandé)
|
|
|
|
```yaml
|
|
version: '3.8'
|
|
services:
|
|
shinobi:
|
|
image: shinobisystems/shinobi:latest
|
|
container_name: shinobi
|
|
restart: unless-stopped
|
|
environment:
|
|
- PLUGIN_KEY_BASE=randomstring-changeme
|
|
- SUPER_USER=admin@shinobi.video
|
|
- SUPER_PASS=changeme
|
|
volumes:
|
|
- shinobi_config:/config
|
|
- shinobi_videos:/opt/shinobi/videos
|
|
- /etc/localtime:/etc/localtime:ro
|
|
ports:
|
|
- 9080:8080
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.shinobi.rule=Host(`shinobi.example.com`)"
|
|
- "traefik.http.routers.shinobi.entrypoints=websecure"
|
|
- "traefik.http.routers.shinobi.tls.certresolver=letsencrypt"
|
|
|
|
db:
|
|
image: mysql:5.7
|
|
container_name: shinobi-db
|
|
restart: unless-stopped
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: changeme
|
|
MYSQL_DATABASE: ccio
|
|
MYSQL_USER: ccio
|
|
MYSQL_PASSWORD: changeme
|
|
volumes:
|
|
- shinobi_db:/var/lib/mysql
|
|
|
|
volumes:
|
|
shinobi_config:
|
|
shinobi_videos:
|
|
shinobi_db:
|
|
```
|
|
|
|
## 🔄 Alternatives
|
|
|
|
### Open Source
|
|
- [[app-zoneminder]] — Vétéran stable, C++
|
|
- [[app-frigate]] — NVR avec AI detection
|
|
- [[app-blue-iris]] — Référence Windows (propriétaire)
|
|
- [[app-viseron]] — NVR Python moderne
|
|
- [[app-scrypted]] — Hub unifié NVR
|
|
- [[app-unblink]] — NVR simple
|
|
|
|
### Propriétaires
|
|
- **Blue Iris** — Référence Windows, ~70$, propriétaire
|
|
- **Synology Surveillance Station** — Inclus NAS Synology
|
|
- **Hikvision iVMS** — Cloud/propriétaire
|
|
- **Nest Cam / Ring** — Cloud, perte vie privée
|
|
|
|
## 🔐 Sécurité
|
|
- **Auth intégrée** : JWT, multi-utilisateurs
|
|
- **HTTPS obligatoire** via Traefik
|
|
- **Base MySQL** : à sauvegarder régulièrement
|
|
- **CVE historiques** : tenir à jour (Node.js, deps)
|
|
- **Network** : isoler VLAN IoT/caméras
|
|
- **Pas de 2FA** : à compenser via Authelia
|
|
- **API tokens** : générer par utilisateur
|
|
|
|
## 📚 Ressources
|
|
- [Documentation](https://shinobi.video/docs/)
|
|
- [Site officiel](https://shinobi.video/)
|
|
- [Forum](https://shinobi.video/community)
|
|
|
|
## Pages Liées
|
|
- [[cat-nvr]] — Catégorie NVR
|
|
- [[app-frigate]] — Concurrent AI-focused
|
|
- [[app-zoneminder]] — Concurrent historique
|
|
- [[recettes-docker-compose]] — Templates Docker
|
|
- [[cameras-rtsp-compatibles]] — Liste caméras testées
|