Ersteinrichtung
Bevor die Familie loslegen kann, wird einmalig der erste Admin-Account angelegt. Dieser Schritt funktioniert nur, solange noch kein einziger Nutzer existiert – danach ist die Einrichtungsseite für immer gesperrt.
So geht's
- Öffne die Datei config.php und ändere den Wert setup_token auf ein eigenes, langes Geheimnis.
- Rufe im Browser auf: https://deine-domain.de/setup.php?token=DEIN_TOKEN
- Trage deinen Namen und ein Passwort (mind. 6 Zeichen) ein und klicke auf Admin-Account anlegen.
- Du wirst automatisch eingeloggt und zur Familien-Code-Abfrage weitergeleitet (siehe nächster Abschnitt).
⚠️ Wichtig
Ohne einen festgelegten Familien-Code kommt anschließend niemand auf die Startseite – auch der Admin nicht. Du wirst deshalb direkt ins Admin-Panel geleitet, um dort als Allererstes einen Familien-Code festzulegen (Abschnitt 6.1).
Anmelden & Familien-Code
Der Zugang läuft in zwei Schritten ab: zuerst der persönliche Login mit Name und Passwort, danach – bei jedem Login erneut – die Eingabe des gemeinsamen Familien-Codes.
Schritt 1: Login
- Seite login.php öffnen.
- Name und Passwort eingeben.
- Anmelden klicken.
Schritt 2: Familien-Code
- Du landest automatisch auf der Familien-Code-Seite.
- Den Code eingeben, den euch der Admin mitgeteilt hat.
- Weiter klicken → du bist auf der Startseite.
🔒 Was dabei wichtig ist
- Der Familien-Code wird nirgends gespeichert – kein Häkchen zum Merken, kein Cookie. Er muss bei jedem neuen Login erneut eingegeben werden.
- Nur der Admin kann den Familien-Code ändern (Abschnitt 6.1). Normale Nutzer sehen dazu keine Option.
- Ist noch gar kein Familien-Code eingerichtet, wartet man auf einer Hinweisseite, bis der Admin einen festgelegt hat.
Neue Familienmitglieder einladen
Neue Mitglieder registrieren sich selbst mit einem Einladungscode, den nur der Admin erzeugen kann. Der neue Account muss danach vom Admin noch freigeschaltet werden.
So geht's
- Admin: Im Admin-Panel unter „🔑 Einladungscode erstellen“ optional eine PIN und eine Gültigkeitsdauer festlegen, dann Code generieren klicken.
- Den erzeugten Code (und ggf. die PIN) sicher an die Person weitergeben, z. B. persönlich oder per Messenger.
- Neue Person: Seite register.php öffnen, Code (+PIN), Name und Passwort eintragen, Registrieren klicken.
- Der Account landet als „wartend“ im Admin-Panel.
- Admin: Im Admin-Panel bei „👥 Wartende Registrierungen“ auf Freischalten klicken.
- Die Person kann sich jetzt ganz normal anmelden (siehe Abschnitt 2).
Hinweise zum Einladungscode
- Ein Code funktioniert nur einmal – danach ist er verbraucht.
- Optional lässt sich eine Gültigkeitsdauer (in Stunden) und eine zusätzliche PIN festlegen.
- Nicht verwendete Codes lassen sich im Admin-Panel jederzeit löschen.
Der Familien-Chat
Der Chat aktualisiert sich automatisch alle 2 Sekunden – ohne Neuladen der Seite. Alle Inhalte liegen verschlüsselt in der Datenbank.
Nachricht schreiben
Text in das Feld eingeben und auf Senden klicken oder Enter drücken.
🔔 Benachrichtigung bei neuen Nachrichten
Kommt eine neue Nachricht rein, während man gerade nicht hinschaut (Tab im Hintergrund oder im Chatverlauf hochgescrollt), passiert Folgendes:
- Ein roter Zähler-Punkt erscheint direkt neben der Überschrift „💬 Familien-Chat“.
- Der Browser-Tab-Titel bekommt zusätzlich ein „(Anzahl)“ vorangestellt.
- Sobald man den Tab wieder fokussiert und ganz nach unten gescrollt ist, verschwindet die Benachrichtigung automatisch.
Eigene Nachrichten zählen dabei nie mit.
🕵️ Wer sieht, wer schreibt?
Aus Datenschutzgründen sehen normale Nutzer nicht, wer eine fremde Nachricht geschrieben hat – sie erscheint einfach als „Familienmitglied“. Nur der Admin sieht bei jeder Nachricht den echten Namen.
👑 Admin-Funktionen im Chat
- Ein Auswahlfeld über der Nachrichtenzeile zeigt alle Nutzer.
- Option 📢 Alle (Broadcast) auswählen → Nachricht geht an alle, sichtbar für jeden.
- Einen bestimmten Namen auswählen → die Nachricht geht privat nur an diese Person (erkennbar am 🔒-Symbol).
Chat-Sichtbarkeit (vom Admin einstellbar)
| Modus | Was normale Nutzer sehen |
|---|---|
| Offen | Alle Nachrichten aller Nutzer (Absender bleibt trotzdem anonym) |
| Nur eigene | Nur die eigenen geschriebenen Nachrichten + alles vom Admin |
Eingestellt wird das im Admin-Panel, Abschnitt 6.6.
Die Einkaufsliste
Neue Artikel werden erst nach Freigabe durch den Admin für alle sichtbar – so bleibt die Liste sauber und ohne Dopplungen.
Artikel hinzufügen
- Artikelnamen eingeben (z. B. „Milch“).
- Optional Anzahl und Einheit eintragen (z. B. „2“ und „Kästen“).
- Zur Liste hinzufügen (Freigabe abwarten) klicken.
- Der Artikel wartet jetzt auf Freigabe durch den Admin.
Artikel abhaken
Sobald ein Artikel freigegeben wurde, erscheint er in der Liste mit Checkbox. Einfach anhaken, sobald er eingekauft wurde – durchgestrichen heißt „erledigt“.
Das Admin-Panel im Überblick
Das Admin-Panel öffnest du direkt über den Markennamen oben links in der Kopfzeile: Einfach auf das Wort „First“ klicken. Einen extra Button gibt es dafür nicht mehr.
So sieht der Zugang in der Kopfzeile aus
❄️ Family First
- Bewusst komplett unauffällig: kein Unterstrich, kein Farbwechsel, keine Sprechblase beim Drüberfahren mit der Maus, kein Zähler-Punkt. „First“ sieht für Admins optisch genauso aus wie für alle anderen auch – ist für Admins aber anklickbar.
- Bei der Begrüßung „Hallo, Name“ oben rechts steht kein „(Admin)“-Hinweis mehr – der Admin-Status ist von außen nirgends erkennbar.
🔔 Benachrichtigungen im Panel
Direkt oben im Admin-Panel (noch vor dem Familien-Code-Abschnitt) fasst eine kleine Box zusammen, was gerade ansteht:
- 🕒 Artikel, die auf Freigabe warten
- 👥 Registrierungen, die auf Freischaltung warten
- ⚠️ Auffälligkeiten im Nutzungs-Log
Jede Zeile ist klickbar und springt direkt zum passenden Abschnitt. Ist gerade nichts offen, steht dort stattdessen ein ruhiges „✅ Alles im grünen Bereich“.
6.1 · 🔐 Familien-Code verwalten
- Abschnitt „Familien-Code“ öffnen.
- Auf Familien-Code ändern klicken – das Feld klappt auf.
- Neuen Code eintragen (mind. 4 Zeichen) und Speichern klicken.
- Lieber doch nichts ändern? Einfach Abbrechen klicken – das Feld schließt sich wieder, ohne etwas zu speichern.
Nach einer Änderung müssen sich alle Familienmitglieder beim nächsten Login mit dem neuen Code anmelden.
6.2 · 👑 Admin-Rechte vergeben
Bei „Alle Familienmitglieder“ steht neben jedem Namen (außer dir selbst) ein Button:
- Admin machen – die Person bekommt volle Admin-Rechte.
- Admin entziehen – erscheint bei bestehenden Admins, nimmt die Rechte wieder.
Du kannst dir selbst nicht die eigenen Admin-Rechte entziehen – so bleibt immer mindestens ein Admin aktiv.
6.3 · 🕒 Artikel freigeben / ablehnen
Neue Einträge aus der Einkaufsliste warten hier auf Prüfung.
- Freigeben – Artikel erscheint für alle sichtbar in der Liste.
- Ablehnen – Artikel wird verworfen.
- Bereits freigegebene Artikel lassen sich im Bereich „Freigegebene Artikel“ jederzeit mit Löschen entfernen.
6.4 · 🔑 Einladungscodes erstellen & verwalten
Siehe Abschnitt 3 – hier werden neue Codes generiert und alte, unbenutzte Codes können gelöscht werden. Bereits verwendete Codes zeigen an, von wem.
6.5 · 👪 Familienmitglieder verwalten
Übersicht aller Nutzer mit Status (freigeschaltet/wartend) und Admin-Kennzeichnung. Mit Löschen verliert eine Person sofort jeden Zugang.
6.6 · 💬 Chat-Sichtbarkeit einstellen
Zwei Radio-Buttons zur Auswahl, danach Speichern klicken:
- Alle können schreiben und lesen – offener Familien-Chat.
- Jeder sieht nur, was er selbst geschrieben hat – plus Nachrichten vom Admin (privat oder Broadcast).
6.7 · 📱 Nutzungs-Log
Zeigt die letzten 200 Logins: Nutzername, Zeitpunkt, Gerätetyp (Handy/Tablet/Desktop), Browser und echte IP-Adresse – erfasst wird das jedes Mal, wenn Login und Familien-Code erfolgreich waren.
Die IP-Erkennung schaut dabei nicht nur auf einen einzelnen Wert, sondern prüft mehrere Herkunfts-Header nacheinander und wählt die tatsächliche, öffentliche Besucher-IP aus – so wird nicht versehentlich eine interne Proxy-Adresse des Hosters angezeigt.
Mit Log leeren lässt sich die Liste jederzeit zurücksetzen.
🔔 Auffälligkeiten-Erkennung (neu)
Das Nutzungs-Log erkennt automatisch verdächtige Muster und meldet sie direkt oben im Admin-Panel:
| Meldung | Bedeutet |
|---|---|
| Neue IP für diesen Nutzer | Die Person loggt sich erstmals von einer IP-Adresse ein, die für sie noch nie erfasst wurde. |
| Schneller IP-Wechsel | Andere IP als beim letzten Login derselben Person – und das innerhalb von unter 30 Minuten. |
- Gibt es Treffer, erscheint oben im Abschnitt „Nutzungs-Log“ eine rote Warnkarte mit einer Kurzliste (Name, Zeitpunkt, IP, Grund).
- Betroffene Zeilen sind in der Tabelle rot hinterlegt und mit ⚠️ markiert – beim Draufhalten zeigt ein Tooltip den genauen Grund.
- Ohne Auffälligkeiten steht dort stattdessen ein grünes „✅ Aktuell keine Auffälligkeiten erkannt“.
Wichtig: Eine Meldung ist ein Hinweis, kein automatischer Alarm – z. B. ein neues Handynetz, Urlaub oder Provider-Wechsel lösen sie ganz normal aus. Der Admin entscheidet selbst, ob weitere Schritte nötig sind (z. B. Familien-Code ändern oder die Person direkt fragen).
6.8 · 🕵️ Tarnmodus (Stealth-404)
Ist der Tarnmodus aktiv, zeigen login.php und register.php allen unbekannten Besuchern eine ganz gewöhnliche 404-Fehlerseite – ohne jeden Hinweis darauf, dass hier überhaupt eine Anwendung läuft. Ein zufälliger Besucher oder automatischer Scanner sieht buchstäblich „Not Found“ und nichts weiter.
Entsperrt wird auf zwei unabhängigen Wegen – jeder reicht für sich allein:
| Gerät | So geht's |
|---|---|
| 💻 Computer | STRG gedrückt halten, dabei G drücken, danach R drücken – funktioniert immer, unabhängig vom Muster (Notfall-Zugang für den Admin). |
| 📱 Handy/Tablet | Ein Muster über ein unsichtbares 3×3-Raster wischen – wie beim Handy-Sperrbildschirm, nicht einzeln antippen. |
Muster im Admin-Panel festlegen
- Abschnitt „🕵️ Tarnmodus (Stealth-404)“ im Admin-Panel öffnen.
- Mit Finger oder Maus gedrückt halten und über mindestens 3 der 9 sichtbaren Punkte in der gewünschten Reihenfolge ziehen, dann loslassen.
- Muster speichern klicken – oder mit Zurücksetzen nochmal von vorn beginnen.
- Erst wenn ein Muster gespeichert ist, lässt sich der Tarnmodus überhaupt aktivieren (Schutz davor, sich versehentlich selbst auszusperren).
- Tarnmodus aktivieren klicken.
- Mit Muster löschen lässt sich das gespeicherte Muster jederzeit entfernen – ist der Tarnmodus dabei gerade aktiv, wird er automatisch mit deaktiviert, damit niemand ausgesperrt bleibt.
- Mit Tarnmodus deaktivieren lässt sich alles jederzeit wieder normal erreichbar machen.
Technischer Hinweis: Manche Browser (v. a. Chrome) reservieren STRG+R fest für „Seite neu laden“. Das Abfangen per JavaScript klappt in den meisten Browsern zuverlässig, aber ganz ohne Ausnahme lässt sich das nicht garantieren – im Zweifel einfach die Muster-Variante nutzen.
6.9 · ⚠️ Datenbank löschen
Registrierte Nutzer bleiben in beiden Fällen immer erhalten. Zur Sicherheit muss jeweils ein Bestätigungswort eingetippt werden.
| Button | Löscht | Bestätigung |
|---|---|---|
| Löschen1 | Chat + Einkaufsliste (Einladungscodes bleiben) | LOESCHEN1 |
| Löschen2 | Chat + Einkaufsliste + alle Einladungscodes | LOESCHEN2 |
Täglicher automatischer Reset
Chat-Nachrichten und Einkaufsliste werden automatisch jeden Tag um 23:59 Uhr geleert. Nutzerkonten und Einladungscodes bleiben davon unberührt.
Ohne Cronjob
Beim ersten Seitenaufruf nach 23:59 Uhr prüft die App automatisch, ob der Reset für heute schon lief, und führt ihn bei Bedarf sofort aus. Reicht für die meisten Familien-Setups völlig aus.
Mit echtem Cronjob (empfohlen)
Falls der Hoster Cronjobs erlaubt, folgenden Eintrag anlegen, damit der Reset auch dann pünktlich läuft, wenn gerade niemand online ist:
59 23 * * * /usr/bin/php /pfad/zu/family-first/cron_reset.php
Sicherheit & Datenschutz
Verschlüsselung „at rest“
Alle Nachrichten und Artikeltexte liegen mit AES-256-GCM verschlüsselt in der Datenbankdatei. Ein gestohlenes Datenbank-Backup allein ist damit nutzlos.
Transportverschlüsselung
Dafür sorgt ihr selbst: Stellt sicher, dass die Seite nur über HTTPS erreichbar ist (bei den meisten Hostern kostenlos per Let's Encrypt aktivierbar).
Warum keine echte Ende-zu-Ende-Verschlüsselung?
Weil der Admin neue Artikel inhaltlich prüfen können muss, bevor sie freigegeben werden – dafür muss der Server (kurzzeitig) den Klartext lesen können. Echte Ende-zu-Ende-Verschlüsselung würde das technisch ausschließen.
Häufige Fragen
Ich habe den Familien-Code vergessen – was tun?
Nur der Admin kann helfen: Er öffnet das Admin-Panel → „Familien-Code“ → „Familien-Code ändern“ und legt einen neuen fest, den er euch dann mitteilt.
Warum sehe ich bei manchen Chat-Nachrichten keinen Namen?
Das ist Absicht: Nur der Admin sieht immer, wer schreibt. Andere Nutzer sehen fremde Nachrichten anonym als „Familienmitglied“.
Kann ich eine Nachricht nur an eine Person schicken?
Das kann aktuell nur der Admin – über das Auswahlfeld im Chat lässt sich gezielt eine Person statt „Alle“ anwählen.
Was passiert, wenn ich „Löschen1“ oder „Löschen2“ klicke?
Beide löschen unwiderruflich Chat-Nachrichten und die Einkaufsliste. „Löschen2“ löscht zusätzlich alle Einladungscodes. Registrierte Nutzerkonten bleiben in jedem Fall erhalten.
Wie sehe ich, wer sich wann eingeloggt hat?
Im Admin-Panel unter „📱 Nutzungs-Log“ – dort stehen Nutzer, Zeitpunkt, Gerätetyp, Browser und die echte IP-Adresse der letzten 200 Anmeldungen.
Was bedeutet das ⚠️-Symbol im Nutzungs-Log?
Der Login wurde als auffällig markiert – entweder eine für diesen Nutzer neue IP-Adresse oder ein sehr schneller Wechsel der IP innerhalb von 30 Minuten. Das ist nur ein Hinweis, kein Alarm: Auch ganz normale Dinge wie ein neues Handynetz oder Urlaub lösen das aus.
Kann ein normaler Nutzer den Familien-Code ändern?
Nein. Das können ausschließlich Admins – normale Nutzer sehen dazu keine Option, nur das Eingabefeld beim Login.
Ich habe den Tarnmodus aktiviert und komme selbst nicht mehr rein – was tun?
Am Computer hilft immer STRG gedrückt halten, dann G, dann R drücken – das funktioniert unabhängig vom gespeicherten Muster als Notfall-Zugang. Danach im Admin-Panel den Tarnmodus bei Bedarf wieder deaktivieren.
Woran erkenne ich, dass eine neue Chat-Nachricht da ist, ohne die App offen zu halten?
Ein roter Zähler-Punkt an der Chat-Überschrift und ein „(Anzahl)“ im Browser-Tab-Titel zeigen ungelesene Nachrichten an – verschwindet automatisch, sobald man wieder hinschaut.