babyphone-cam

Das Babyphone, das nur in deinem Heimnetz lebt.

Ein altes Handy oder Tablet wird zur Kamera beim Kind, jedes andere Gerät zum Elterngerät. Alles läuft im Browser über einen eigenen Docker-Container – ohne App, ohne Konto, ohne Cloud.

Installieren Auf GitHub ansehen 🧸 Spenden

  • Open Source (AGPL-3.0)
  • LAN oder WireGuard-VPN
  • Nichts wird aufgezeichnet
  • Browser oder App
Elternansicht mit drei Kindern: Mia mit grünem Rahmen bei Geräusch, Leo und Noah ruhig. Die Kinder sind Illustrationen.

Funktionen

Alles, was ein Babyphone im Alltag braucht – direkt im Browser.

  • Kind- und Elterngerät

    Jedes Gerät wählt seine Rolle: Kind oder Eltern, je mit eigenem PIN. Einstellungen sind mit einem separaten Admin-PIN geschützt. Oberfläche auf Deutsch, Englisch, Italienisch und Französisch.

  • Browser oder App

    Läuft im Browser oder als App auf dem Home-Bildschirm und dem Desktop. Getestet auf iPhone (Safari und App) und Android. Das Elterngerät bleibt wach, solange die Seite offen ist.

  • Kamera oder Telefon

    Modus «Kamera» (Video und Ton) oder «Telefon» (nur Ton). Name aus einer Liste oder frei. Front- oder Rückkamera, auch vom Elterngerät aus umschaltbar.

  • Dunkler Bildschirm

    Nach dem Start zeigt das Kindgerät die Kamera zum Ausrichten. Ein Tippen oder 1 Minute ohne Berührung schaltet den Bildschirm schwarz, die Übertragung läuft weiter (Wake Lock). Doppeltippen zeigt das Menü.

  • Alle Kinder auf einen Blick

    Die Eltern sehen alle aktiven Kinder gleichzeitig in einem dynamischen Raster ohne Scrollen. Jede Kachel lässt sich vergrössern und zeigt «Kamera aktiv» und «Mikro aktiv».

  • Grüner Rahmen bei Aktivität

    Bei Geräusch oder Bewegung leuchtet die Kachel grün. Ton- und Bewegungsschwelle pro Kind direkt vom Elterngerät einstellbar.

  • Hören und Sprechen

    Alle Kinder gleichzeitig hören, Lautstärke pro Kind, Push-to-Talk pro Kind. Der Ton läuft weiter, auch bei gesperrtem Handy und im Lautlos-Modus (getestet auf dem iPhone). Sperrbildschirm und Dynamic Island zeigen die Kinder.

  • Auto-Fokus

    Bei Geräusch rücken die neuesten bis zu vier aktiven Kinder für rund fünf Sekunden in den Vordergrund.

  • Alarm, wenn ein Kindgerät fehlt

    Fällt ein Kindgerät aus, ertönt auf den Elterngeräten ein Alarm, der bestätigt werden muss. Zusätzlich Webhooks (GET, POST, PUT), zum Beispiel an Gotify, Slack oder Bark.

  • HTTPS direkt im Container

    Zertifikat aus einem Ordner (z. B. Nginx Proxy Manager / Let's Encrypt), über die Cert-Warden-API oder selbst signiert als Rückfall. Kein Reverse Proxy nötig.

So funktioniert es

Bild und Ton laufen vom Kindgerät zu deinem eigenen Docker-Container und von dort zu den Elterngeräten. Der Container verteilt die Medien (mediasoup SFU) – live, ohne Aufzeichnung.

Ablauf: Kindgerät, Docker-Server im Heimnetz, ElterngeräteDas Kindgerät sendet Bild und Ton über HTTPS und WebRTC an den babyphone-cam-Container in deinem LAN. Der Container leitet live an die Elterngeräte weiter. Alles bleibt im LAN oder WireGuard-VPN, keine Cloud, keine Aufzeichnung. Dein LAN oder WireGuard-VPN keine Cloud Kindgerät Browser, Kamera + Mikrofon Docker-Server babyphone-cam HTTPS · PIN-Loginmediasoup SFUnur live Elterngeräte beliebig viele Browser Video + Ton live Sprechen, Schwellen, Kamera Ablauf: Kindgerät, Docker-Server im Heimnetz, ElterngeräteDas Kindgerät sendet Bild und Ton über HTTPS und WebRTC an den babyphone-cam-Container in deinem LAN. Der Container leitet live an die Elterngeräte weiter. Alles bleibt im LAN oder WireGuard-VPN, keine Cloud, keine Aufzeichnung. Dein LAN oder WireGuard-VPN Kindgerät Browser, Kamera + Mikrofon Video + Ton Docker-Server babyphone-cam HTTPS · PIN-Loginmediasoup SFUnur live live Elterngeräte beliebig viele Browser keine Cloud

Bilder aus der App

Echte Bildschirmfotos der App mit Test-PINs. Die Kinder im Kamerabild sind Illustrationen.

Elternansicht mit drei Kacheln. Mia (Kamera) hat einen grünen Rahmen, Leo (Kamera) und Noah (nur Ton) sind ruhig. Unter jeder Kachel Lautstärke, Ton- und Bewegungsschwelle, Sprechen und Kamera wechseln.
Elternansicht: drei Kinder, Mia mit grünem Rahmen
Vergrösserte Ansicht von Mia mit illustriertem schlafendem Baby im Bettchen, darunter Regler und die Taste Sprechen.
Vergrösserte Ansicht eines Kindes
Einrichtungsassistent Schritt 1 von 8: Sprache mit den Optionen Automatisch, Deutsch, English, Italiano und Français.
Einrichtungsassistent beim ersten Start
Einstellungsseite: Admin-PIN, PIN Eltern und PIN Kind, jeweils mit Herkunft des Werts.
Einstellungen mit Admin-PIN
Elternansicht auf einem Handy: drei Kinder untereinander ohne Scrollen, Mia mit grünem Rahmen.
Elternansicht auf dem Handy
Startseite auf dem Handy mit Logo und den Tasten Kind und Eltern sowie Einstellungen.
Startseite: Rolle wählen
Kindgerät auf dem Handy: Name Mia gewählt, Modus Kamera, Frontkamera, Taste Starten.
Kindgerät: Name, Modus, Kamera
Laufendes Kindgerät: schwarzer Bildschirm, unten das Menü mit Verbunden, Kamera wechseln und Beenden.
Kindgerät läuft: Bildschirm dunkel

Datenschutz und Sicherheit

  • Keine Cloud, kein Konto

    Kein Hersteller-Server, keine Registrierung, keine App. Der Container läuft bei dir.

  • Nur LAN oder VPN

    Gedacht für das Heimnetz oder ein WireGuard-VPN. Standardmässig werden nur Geräte aus privaten Netzen zugelassen (IP-Allowlist).

  • Nichts wird aufgezeichnet

    Bild und Ton enden im Container und werden nur live weitergeleitet. Es gibt keine Aufnahmen.

  • PINs mit Schutz

    Getrennte PINs für Kind, Eltern und Admin. Der PIN-Login ist gegen Durchprobieren begrenzt (Rate Limit).

  • Open Source

    Quellcode unter AGPL-3.0 auf GitHub. Das Image wird jede Woche automatisch neu gebaut, damit Sicherheitsupdates drin sind.

Installation

  1. compose.yaml und .env.example aus dem Repository übernehmen, mindestens die IP des Containers (BABYPHONE_IP) und den Zertifikatsordner (CERTS_DIR) setzen.
  2. Container starten, z. B. mit docker compose up -d oder als neuen Stack im Unraid Compose Manager.
  3. Im Browser https://<IP oder Name>/ öffnen. Der Einrichtungsassistent fragt nach Sprache, PINs, Kindernamen, HTTPS, Alarmen und Webhooks.
  4. Am Kindgerät «Kind» wählen, am Elterngerät «Eltern» – jeweils mit dem passenden PIN.
  5. Optional auf dem Handy: die Seite als App auf den Home-Bildschirm legen. Die Startseite zeigt dazu einen Hinweis.

Voraussetzungen

  • Ein Docker-Host im Heimnetz, zum Beispiel Unraid.
  • Ein HTTPS-Zertifikat für einen Namen, der im LAN auf den Container zeigt. Browser erlauben Kamera und Mikrofon nur über HTTPS. Ohne Zertifikat nutzt der Container ein selbst signiertes (Browser-Warnung).
  • LAN oder WireGuard-VPN (das VPN-Subnetz muss ins LAN geroutet sein).
  • Ports 443/tcp (Web, WebSocket), 80/tcp (Weiterleitung auf HTTPS) und 40000/udp + tcp (Medien).
  • Ausgelegt für aktuelle Browser (Chrome, Firefox, Safari, Edge) mit Kamera- bzw. Mikrofonzugriff.

Gekürztes Beispiel aus der Datei compose/compose.yaml (Unraid, Netzwerk br0 mit eigener IP). Die vollständige, gehärtete Datei und .env.example liegen im Repository.

# 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

Vollständige compose.yaml auf GitHub

Häufige Fragen

Brauche ich eine App?

Nein. Kind- und Elterngerät nutzen nur den Browser.

Funktioniert es von unterwegs?

Nur über ein VPN wie WireGuard, das ins Heimnetz geroutet ist. Es gibt bewusst keinen Cloud-Zugang.

Wird etwas gespeichert oder aufgezeichnet?

Nein. Bild und Ton werden nur live weitergeleitet. Gespeichert werden Einstellungen, PINs nur als Hash.

Worauf muss ich beim Kindgerät achten?

Die Seite im Vordergrund lassen, den Bildschirm nicht sperren und das Gerät ans Ladegerät hängen. Sperren oder App-Wechsel stoppt Kamera und Mikrofon (iOS, Android). LCD-Bildschirme bleiben beleuchtet, nur OLED wird wirklich dunkel.

Auf welchen Geräten wurde es getestet?

Die App ist für aktuelle Browser (Chrome, Firefox, Safari, Edge) ausgelegt. Getestet auf echten Geräten mit iOS (Safari und als App auf dem Home-Bildschirm) und Android.

In welchen Sprachen gibt es die App?

Deutsch, Englisch, Italienisch und Französisch. Einstellbar im Einrichtungsassistenten oder unter Einstellungen; «Automatisch» nimmt die Browsersprache, sonst Englisch.

Was kostet es?

Nichts. babyphone-cam ist Open Source unter der Lizenz AGPL-3.0.