User Tools

Site Tools


Sidebar

documentation:raspberry_pi:camera_de_surveillance:4_-_administration_web
Page non maintenue Voir Administration Web pour la nouvelle version

Administration Web (Obsolète)

Cette partie est optionnelle. Elle va vous permettre de mettre en place un petit serveur web sur votre Raspberry afin de visualiser votre webcam mais aussi de pouvoir activer/désactiver la surveillance et connaître la date de la dernière intrusion.

Lighttpd

Ici nous n'utiliserez pas Apache qui est bien trop lourd mais lighttpd.

Installation

$ sudo apt-get install lighttpd php5-cgi php5-curl

Activez ensuite le support de php :

$ sudo lighty-enable-mod fastcgi
$ sudo lighty-enable-mod fastcgi-php
$ sudo /etc/init.d/lighttpd force-reload

Pour vérifier le bon fonctionnement de lighttpd, dans votre navigateur tapez simplement l'url du serveur :

http://192.168.1.6/

Vous devriez alors arriver sur la page par défaut de lighttpd.

Authentification

Dans cette partie vous allez modifier la configuration de lighttpd afin que celui-ci vous demande un login/mot de passe lorsque vous accéderez à l'interface.

$ sudo nano -w /etc/lighttpd/lighttpd.conf

Dans le bloc server.modules rajoutez “mod_auth

server.modules = (
        "mod_auth",
)

A la fin du fichier rajoutez les lignes suivantes :

auth.debug = 2
auth.backend = "plain"
auth.backend.plain.userfile = "/home/pi/.lighttpdpassword"
auth.require = ( "/" =>
        (
                "method" => "basic",
                "realm" => "Password protected area",
                "require" => "user=user"
        )
)

N'oubliez pas de remplacer “user=user” par l'utilisateur de votre choix (exemple : “user=darkou”). Utilisez le même login/password que dans le fichier motion.conf.

Créez ensuite le fichier /home/pi/.lighttpdpassword qui contiendra le mot de passe associé à l'utilisateur “user” :

$ nano -w /home/pi/.lighttpdpassword
user:password

Redémarrez lighttpd :

$ sudo /etc/init.d/lighttpd force-reload

Actualisez la page dans votre navigateur, vous devriez avoir une demande de mot de passe.

Reverse proxy

Cette partie est facultative aussi. Le reverse proxy va vous permettre de pouvoir visualiser votre caméra depuis le web en ouvrant seulement le port 80 (http) de votre box. Il va également nous permettre de gérer notre caméra (activer/désactiver la détection, … )

Vous devez encore une fois modifier le fichier lighttpd.conf :

$ sudo nano -w /etc/lighttpd/lighttpd.conf

Afin d'activer le module mod_proxy :

server.modules = (
        "mod_proxy",
)

A la fin du fichier rajoutez ces lignes :

$HTTP["url"] =~ "^/cam" {
    proxy.server  = ( "" =>
        (( "host" => "127.0.0.1", "port" => 8082 ))
    )
}
$HTTP["url"] =~ "^/config" {
    proxy.server  = ( "" =>
        (( "host" => "127.0.0.1", "port" => 8081 ))
    )
}

Rechargez la configuration de lighttpd :

$ sudo /etc/init.d/lighttpd force-reload

Dans votre navigateur essayez l'url suivante :

http://192.168.1.6/cam

Vous devriez alors voir votre caméra.

Motion

Maintenant que votre caméra est accessible directement via lighttpd vous pouvez désactiver dans Motion le fait que le flux soit visualisable depuis le réseau et son authentification. Votre caméra étant déjà protégé via l'authentification de lighttpd une double authentification sera plus contraignante qu'autre chose.

$ sudo nano -w /etc/motion.conf

Cherchez le bloc : “Live Stream Server” (ligne ~513)

Puis forcez les valeurs suivantes :

stream_localhost on
stream_auth_method 0
Méthode non valable pour HTTP Based Control

Cherchez ensuite le bloc “HTTP Based Control” (juste en dessous) Puis forcez la valeur suivante :

webcontrol_localhost on

Sauvegardez puis relancez motion :

$ sudo /etc/init.d/motion restart

Maintenant, si vous essayer de vous connecter sur http://192.168.1.6:8082/ avec votre navigateur vous aurez une erreur, par contre http://192.168.1.6/cam reste fonctionnel.

Interface Web

Nous allons maintenant récupérer les sources de l'interface web.

Installation

$ cd /var/www/html
$ sudo rm index.lighttpd.html
$ sudo git clone https://github.com/Dbroqua/picam-php.git .

Rechargez la page web ( http://192.168.1.6/ ), vous devriez apercevoir votre interface web avec la caméra et diverses informations.

Configuration

conf.json

La version actuelle du picam-php permet la gestion de plusieurs caméra. Sur chacune de vos Raspberry équipé de Motion vous devrez installer picam-php.

Le fichier conf.json que vous allez créer doit être placé au même niveau que le fichier index.html.

Ce fichier contient la liste des Raspberry a monitorer ainsi que leur configurations.

Serveur maitre

La configuration du serveur maître contient la description du motion local mais aussi la liste des motion distants.

[
  {
    "type": "local",
    "name": "Living Room",
    "motionAdminUri": "http://127.0.0.1:8081/0/detection/",
    "service": "sudo /etc/init.d/motion",
    "pid_file": "/var/run/motion/motion.pid",
    "intrusion_directory": "/media/freebox/",
    "intrusion_file": "/media/freebox/intrusion.date"
  },
  {
    "type": "net",
    "name": "Slave 1",
    "scheme": "http://",
    "host": "192.168.1.4",
    "port": "80",
    "login": "user",
    "password": "password",
    "motionAdminUri": "http://192.168.1.4:8081/0/detection/"
  }
]

Quelques explications maintenant sur les différents paramètres possibles :

  • type : local/net (local pour la machine qui héberge le site et motion, net pour tout autre machine)
  • name : Nom de la caméra
  • scheme : type de protocole utilisé pour atteindre une machine distante ( http: ou https: ) machine distante uniquement
  • host : ip de la machine distante machine distante uniquement
  • port : port de la machine distante machine distante uniquement
  • login : login pour joindre la machine distante machine distante uniquement
  • password : mot de passe pour joindre la machine distante machine distante uniquement
  • motionAdminUri : url pour joindre l'interface web de Motion ( http://ip de la machine:8081/0/detection/ )
  • service : binaire pour lancer/arrêter motion
  • pid_file : emplacement du fichier pid de motion
  • intrusion_directory : emplacement ou son stockés le fichiers
  • intrusion_file : chemin vers le fichier contenant la date de la dernière intrusion

Au chargement de la page les différentes caméras seront automatiquement affichées.

Afin de valider votre fichier json vous pouvez utiliser ce site : http://jsonlint.com/

Serveurs esclaves

La configuration d'un serveur esclave est plus simple car elle ne contient que le bloc “local”.

[
  {
    "type": "local",
    "name": "Esclave",
    "motionAdminUri": "http://127.0.0.1:8081/0/detection/",
    "service": "sudo /etc/init.d/motion",
    "pid_file": "/var/run/motion/motion.pid",
    "intrusion_directory": "/media/freebox/",
    "intrusion_file": "/media/freebox/intrusion.date"
  }
]

système

Afin de rendre les boutons start/stop actifs vous allez ajouter l'utilisateur www-data au groupe sudo :

Attention ! toute fausse manipulation pourrait bloquer le pi
$ sudoedit /etc/sudoers

Puis rajoutez à la fin du fichier :

www-data ALL=(ALL) NOPASSWD: ALL

Vos boutons sont maintenant actifs.

documentation/raspberry_pi/camera_de_surveillance/4_-_administration_web.txt · Last modified: 2017/07/14 19:45 (external edit)