babyphone-cam

Le babyphone qui reste dans votre réseau domestique.

Un ancien téléphone ou une tablette devient la caméra près de l'enfant, n'importe quel autre appareil devient l'unité parents. Tout fonctionne dans le navigateur via votre propre conteneur Docker – sans app, sans compte, sans cloud.

Installer Voir sur GitHub 🧸 Faire un don

  • Open source (AGPL-3.0)
  • LAN ou VPN WireGuard
  • Aucun enregistrement
Vue parents avec trois enfants : Mia avec un cadre vert lors d'un bruit, Leo et Noah calmes. Les enfants sont des illustrations.

Fonctions

Tout ce dont un babyphone a besoin au quotidien – directement dans le navigateur.

  • Appareil enfant et appareil parents

    Chaque appareil choisit son rôle : enfant ou parents, chacun avec son propre PIN. Les réglages sont protégés par un PIN admin séparé.

  • Caméra ou téléphone

    Mode « Camera » (vidéo et son) ou « Phone » (son uniquement). Nom choisi dans une liste ou libre. Caméra avant ou arrière, commutable aussi depuis l'appareil parents.

  • Écran sombre

    L'appareil enfant s'assombrit tout en restant actif (wake lock). Un double appui affiche le menu.

  • Tous les enfants d'un coup d'œil

    Les parents voient tous les enfants actifs à la fois dans une grille dynamique, sans défilement. Chaque vignette peut être agrandie.

  • Cadre vert en cas d'activité

    En cas de bruit ou de mouvement, la vignette s'allume en vert. Seuils de son et de mouvement par enfant, réglables depuis l'appareil parents.

  • Écouter et parler

    Écouter tous les enfants en même temps, volume par enfant, push-to-talk par enfant.

  • Mise au point automatique

    En cas de bruit, les derniers enfants actifs, jusqu'à quatre, passent au premier plan pendant environ cinq secondes.

  • Alarme si un appareil enfant décroche

    Si un appareil enfant se déconnecte, une alarme retentit sur les appareils parents et doit être confirmée. En plus, des webhooks (GET, POST, PUT), par exemple vers Gotify, Slack ou Bark.

  • HTTPS directement dans le conteneur

    Certificat depuis un dossier (p. ex. Nginx Proxy Manager / Let's Encrypt), via l'API Cert Warden ou auto-signé en secours. Aucun reverse proxy nécessaire.

Fonctionnement

La vidéo et le son passent de l'appareil enfant à votre propre conteneur Docker, puis aux appareils parents. Le conteneur relaie les médias (mediasoup SFU) – en direct, sans enregistrement.

Flux : appareil enfant, serveur Docker dans votre LAN, appareils parentsL'appareil enfant envoie la vidéo et le son via HTTPS et WebRTC au conteneur babyphone-cam dans votre LAN. Le conteneur les relaie en direct aux appareils parents. Tout reste dans votre LAN ou VPN WireGuard, sans cloud, sans enregistrement. Votre LAN ou VPN WireGuard pas de cloud Appareil enfant navigateur, caméra + micro Serveur Docker babyphone-cam HTTPS · connexion PINmediasoup SFUen direct seulement Appareils parents autant de navigateurs que voulu vidéo + son en direct parler, seuils, caméra Flux : appareil enfant, serveur Docker dans votre LAN, appareils parentsL'appareil enfant envoie la vidéo et le son via HTTPS et WebRTC au conteneur babyphone-cam dans votre LAN. Le conteneur les relaie en direct aux appareils parents. Tout reste dans votre LAN ou VPN WireGuard, sans cloud, sans enregistrement. Votre LAN ou VPN WireGuard Appareil enfant navigateur, caméra + micro vidéo + son Serveur Docker babyphone-cam HTTPS · connexion PINmediasoup SFUen direct seulement en direct Appareils parents autant de navigateurs que voulu pas de cloud

Images de l'app

Captures d'écran réelles de l'app avec des PIN de test. Les enfants dans l'image caméra sont des illustrations. L'interface de l'app existe en allemand et en anglais ; les captures montrent la version anglaise.

Vue parents avec trois vignettes. Mia (caméra) a un cadre vert, Leo (caméra) et Noah (son uniquement) sont calmes. Sous chaque vignette : volume, seuil de son et de mouvement, Talk et Switch camera.
Vue parents : trois enfants, Mia avec un cadre vert
Vue agrandie de Mia montrant un bébé illustré qui dort dans son lit, avec les curseurs et le bouton Talk en dessous.
Vue agrandie d'un enfant
Assistant de configuration, étape 1 sur 8 : langue avec les options Automatique, Deutsch, English, Italiano et Français.
Assistant de configuration au premier démarrage
Page des réglages : PIN admin, PIN parents et PIN enfant, chacun avec l'origine de sa valeur.
Réglages protégés par le PIN admin
Vue parents sur un téléphone : trois enfants les uns sous les autres sans défilement, Mia avec un cadre vert.
Vue parents sur un téléphone
Page d'accueil sur un téléphone avec le logo, les boutons Child et Parents, et Settings.
Page d'accueil : choisir le rôle
Appareil enfant sur un téléphone : nom Mia sélectionné, mode Camera, caméra avant, bouton Start.
Appareil enfant : nom, mode, caméra
Appareil enfant en marche : écran noir, en bas le menu avec Connected, Switch camera et Stop.
Appareil enfant actif : écran sombre

Confidentialité et sécurité

  • Pas de cloud, pas de compte

    Pas de serveur du fabricant, pas d'inscription, pas d'app. Le conteneur tourne chez vous.

  • LAN ou VPN uniquement

    Conçu pour le réseau domestique ou un VPN WireGuard. Par défaut, seuls les appareils de réseaux privés sont admis (liste d'IP autorisées).

  • Rien n'est enregistré

    La vidéo et le son s'arrêtent au conteneur et ne sont relayés qu'en direct. Il n'y a aucun enregistrement.

  • PIN protégés

    PIN séparés pour enfant, parents et admin. La connexion par PIN est limitée contre les essais répétés (rate limit).

  • Open source

    Code source sous licence AGPL-3.0 sur GitHub. L'image est reconstruite automatiquement chaque semaine pour intégrer les mises à jour de sécurité.

Installation

  1. Reprendre compose.yaml et .env.example du dépôt ; définir au moins l'IP du conteneur (BABYPHONE_IP) et le dossier des certificats (CERTS_DIR).
  2. Démarrer le conteneur, p. ex. avec docker compose up -d ou comme nouvelle stack dans le Compose Manager d'Unraid.
  3. Ouvrir https://<IP ou nom>/ dans le navigateur. L'assistant demande la langue, les PIN, les prénoms des enfants, HTTPS, les alarmes et les webhooks.
  4. Sur l'appareil enfant, choisir le rôle enfant ; sur l'appareil parents, le rôle parents – chacun avec son PIN.

Prérequis

  • Un hôte Docker dans le réseau domestique, par exemple Unraid.
  • Un certificat HTTPS pour un nom qui pointe vers le conteneur dans le LAN. Les navigateurs n'autorisent caméra et micro qu'en HTTPS. Sans certificat, le conteneur utilise un certificat auto-signé (avertissement du navigateur).
  • LAN ou VPN WireGuard (le sous-réseau VPN doit être routé vers le LAN).
  • Ports 443/tcp (web, WebSocket), 80/tcp (redirection vers HTTPS) et 40000/udp + tcp (médias).
  • Conçu pour les navigateurs actuels (Chrome, Firefox, Safari, Edge) avec accès à la caméra ou au micro.

Exemple abrégé du fichier compose/compose.yaml (Unraid, réseau br0 avec sa propre IP). Le fichier complet et renforcé ainsi que .env.example se trouvent dans le dépôt.

# compose.yaml
services:
  babyphone:
    image: ghcr.io/helmi1987/babyphone-cam:latest
    container_name: babyphone
    restart: unless-stopped
    environment:
      - TZ=Europe/Zurich
      - CERTS_DIR=/certs
      - ANNOUNCED_IP=192.168.1.30
    volumes:
      - /mnt/user/appdata/babyphone:/data
      - /mnt/user/appdata/Nginx-Proxy-Manager-Official/letsencrypt:/certs:ro
    networks:
      br0:
        ipv4_address: 192.168.1.30

networks:
  br0:
    external: true

compose.yaml complet sur GitHub

Questions fréquentes

Faut-il une app ?

Non. Les appareils enfant et parents utilisent seulement le navigateur.

Est-ce que ça marche hors de la maison ?

Uniquement via un VPN comme WireGuard routé vers le réseau domestique. Il n'y a volontairement aucun accès cloud.

Quelque chose est-il stocké ou enregistré ?

Non. La vidéo et le son ne sont relayés qu'en direct. Seuls les réglages sont stockés, les PIN uniquement sous forme de hash.

À quoi faut-il faire attention sur l'appareil enfant ?

Garder la page au premier plan, l'écran déverrouillé et l'appareil branché. Verrouiller ou changer d'app arrête caméra et micro (iOS, Android). Les écrans LCD restent rétroéclairés, seuls les OLED deviennent vraiment noirs.

Sur quels appareils a-t-il été testé ?

L'app est conçue pour les navigateurs actuels (Chrome, Firefox, Safari, Edge). Testée sur un vrai iPhone (Safari). Android : aucun problème connu.

Dans quelles langues l'app est-elle disponible ?

Allemand, anglais, italien et français. Réglable dans l'assistant de configuration ou dans les paramètres ; « Automatique » utilise la langue du navigateur, sinon l'anglais.

Combien ça coûte ?

Rien. babyphone-cam est open source sous licence AGPL-3.0.