---
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
