4.7 KiB
📖 Freundesbuch (digital)
Ein selbst gehostetes, digitales Freundschaftsbuch. Kein Benutzer-System – nur ein Admin-Passwort für dich, und pro Freund ein frei wählbares Freigabe-Passwort zum Teilen.
Funktionen
- Ein Passwort für den Admin-Bereich (als SHA-256-Hash in
docker-compose.yml, kein Klartext). - Freunde anlegen – jeder Freund ist ein eigener Ordner auf dem Server (
Name-zufallsID). - Jeder Freund hat ein Profilbild und einen Steckbrief (klassische Freundebuch-Felder).
- Beliebig viele Blöcke pro Freund: 🖼️ Bild, 📝 Text, 🎙️ Audio (MP3 o. ä.) – alles wird im jeweiligen Freundes-Ordner gespeichert.
- Audio-Cover: Beim Hochladen eines Liedes/einer Sprachnachricht kann optional ein eigenes Cover-Bild mitgegeben werden. Wird keins hochgeladen, versucht die App automatisch ein in der MP3 eingebettetes Cover (ID3-Tag) zu extrahieren und zu verwenden.
- Freigabe-Link: Für jeden Freund kannst du einen Link mit eigenem Passwort erzeugen. Damit kann sich der Freund nur in seine eigene Seite einloggen und dort Inhalte hinzufügen/bearbeiten. Die Freigabe kannst du jederzeit als Admin beenden.
- Öffentliche URL für Freigabe-Links: Läuft der Server hinter einem Reverse-Proxy, kannst
du im Admin-Bereich unter "Einstellungen" (oder per
PUBLIC_BASE_URL-Env) eine öffentliche Basis-URL hinterlegen. Freigabe-Links werden dann darauf basierend erzeugt statt auf der lokalen Server-Adresse/IP. - Export & Import: Einzelne Freunde oder das gesamte Freundesbuch lassen sich als ZIP exportieren und wieder importieren (z. B. zum Umziehen auf einen anderen Server oder als Backup). Der Import eines Freundes/Buchs legt dabei immer neue Einträge an; beim Buch-Import kann optional vorher alles Bestehende gelöscht werden.
- Freundesbuch-Ansicht: verspieltes Scrapbook-Layout mit schräg angeordneten Polaroid-Fotos, Washi-Tape-Optik usw. – seitenweise durchblätterbar.
- PDF-Export des gesamten Freundesbuchs (serverseitig über Puppeteer/Chromium gerendert).
Setup
-
Admin-Passwort festlegen – Hash erzeugen:
echo -n "DeinPasswort" | sha256sum(macOS:
shasum -a 256, Windows/PowerShell:certutil -hashfile datei.txt SHA256oder ein Online-Tool deines Vertrauens – wichtig ist nur SHA-256 in Kleinbuchstaben-Hex.)Den Hash in
docker-compose.ymlbeiADMIN_PASSWORD_HASHeintragen.⚠️ Der mitgelieferte Standard-Hash entspricht dem Passwort
aendern123– bitte vor dem Livegang unbedingt ändern! -
Session-Secret ändern –
SESSION_SECRETindocker-compose.ymldurch eine lange, zufällige Zeichenkette ersetzen (z. B.openssl rand -hex 32). -
Starten:
docker compose up -d --buildDie Anwendung läuft danach auf
http://<server>:3000. -
Reverse-Proxy / öffentliche URL (optional): Läuft der Server hinter einem Reverse-Proxy (z. B. Nginx, Traefik, Caddy), trage entweder
PUBLIC_BASE_URLin derdocker-compose.ymlein, oder setze die URL direkt im Admin-Bereich unter "Einstellungen" (https://deine-domain.tld, ohne abschließenden Slash). Danach zeigen alle neu erzeugten Freigabe-Links auf diese Adresse statt auf die lokale Server-IP. -
Alle Daten (Freunde-Ordner, Fotos, Texte, Audios, Einstellungen) landen im lokalen Ordner
./data, der als Volume eingebunden ist – so bleiben sie auch bei Container-Updates erhalten.
Nutzung
- / – Login mit dem Admin-Passwort.
- /admin – Übersicht: Freunde anlegen, bearbeiten, Freigabe verwalten, löschen.
- /friend/<id> – Freund bearbeiten (Profilbild, Steckbrief, Blöcke) – für dich als Admin.
- /share/<id> – der Link, den du deinem Freund gibst. Er meldet sich mit dem von dir vergebenen Freigabe-Passwort an und kann nur dort etwas eintragen.
- /book – die verspielte Freundesbuch-Ansicht mit Blätterfunktion und PDF-Export (Button oben rechts).
- Im Admin-Bereich (
/admin) findest du außerdem die Bereiche Einstellungen (öffentliche URL) und Sichern & Wiederherstellen (Export/Import für einzelne Freunde und für das gesamte Buch als ZIP-Datei) sowie einen Export-Button auf jeder Freundeskarte.
Hinweise
- Ordnerstruktur pro Freund:
data/friends/<name>-<zufalls-id>/mitmeta.json(Steckbrief, Blöcke, Freigabe-Status) und Unterordneruploads/für Fotos/Audios. - Erlaubte Upload-Typen: Bilder (jpg, png, gif, webp) und Audio (mp3, wav, ogg, m4a), maximal 40 MB pro Datei.
- Der PDF-Export rendert das Buch serverseitig mit Chromium (im Docker-Image enthalten) – dafür braucht der Container etwas RAM (mind. 512 MB empfohlen).
- Es gibt bewusst keine Benutzernamen oder E-Mail-Adressen – nur Passwörter.