Files
Freundebuch/README.md
2026-09-07 12:21:53 +02:00

66 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 📖 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.
- **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.
- **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
1. **Admin-Passwort festlegen** Hash erzeugen:
```bash
echo -n "DeinPasswort" | sha256sum
```
(macOS: `shasum -a 256`, Windows/PowerShell: `certutil -hashfile datei.txt SHA256` oder
ein Online-Tool deines Vertrauens wichtig ist nur SHA-256 in Kleinbuchstaben-Hex.)
Den Hash in `docker-compose.yml` bei `ADMIN_PASSWORD_HASH` eintragen.
⚠️ Der mitgelieferte Standard-Hash entspricht dem Passwort `aendern123`
bitte vor dem Livegang unbedingt ändern!
2. **Session-Secret ändern** `SESSION_SECRET` in `docker-compose.yml` durch eine lange,
zufällige Zeichenkette ersetzen (z. B. `openssl rand -hex 32`).
3. **Starten**:
```bash
docker compose up -d --build
```
Die Anwendung läuft danach auf `http://<server>:3000`.
4. Alle Daten (Freunde-Ordner, Fotos, Texte, Audios) 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).
## Hinweise
- Ordnerstruktur pro Freund: `data/friends/<name>-<zufalls-id>/`
mit `meta.json` (Steckbrief, Blöcke, Freigabe-Status) und Unterordner `uploads/`
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.