66 lines
3.1 KiB
Markdown
66 lines
3.1 KiB
Markdown
|
|
# 📖 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.
|