Files
mood-tracking/README.md
T

58 lines
2.8 KiB
Markdown

# Mood
Dateibasierter Stimmungstracker für LAMP/Cloudron ohne Datenbank.
## Features
- Geschützter Login mit Session, `password_hash`, CSRF-Schutz und Security-Headern
- Vier Bereiche: Dashboard, Tracking, Optionen, Archiv
- Speicherung aller Tage als Markdown in `storage/users/<user>/days/YYYY-MM-DD.txt`
- KI-Wochen- und Monatszusammenfassungen im Archiv mit verschlüsselter dateibasierter Ablage
- Pro Nutzer eigene Einstellungen für die Bewertungslogik
- Admin kann weitere Accounts direkt in der Weboberfläche anlegen
- Moderner, responsiver Liquid-Glass-Look mit lokalen Assets und ohne externe CDNs
## Struktur
- `index.php`: Front-Controller und Routing-Einstieg
- `src/`: PHP-Logik für Auth, Storage, Scoring und Rendering
- `templates/`: Seiten-Templates
- `assets/`: CSS und JavaScript
- `storage/`: geschützter Dateispeicher, per `.htaccess` nicht direkt abrufbar
## Deployment auf Cloudron / LAMP
1. Den Projektordner in die App deployen und Apache auf dieses Verzeichnis zeigen lassen.
2. `AllowOverride All` aktiv lassen, damit `.htaccess` greift.
3. Sicherstellen, dass der Webserver Schreibrechte auf `storage/` hat.
4. Die Seite das erste Mal aufrufen und unter `/setup` den ersten Admin-Account erstellen.
5. Danach ist die Anwendung nur noch nach Login nutzbar.
## Hinweise
- Die Inhalte liegen absichtlich nicht in einer Datenbank, sondern in menschenlesbaren TXT-Dateien.
- Tagesdateien und KI-Zusammenfassungen werden serverseitig verschlüsselt gespeichert und im Backup wieder als lesbare TXT-Dateien exportiert.
- Mehrere Accounts sind möglich und verursachen hier wenig Overhead, weil jeder Nutzer nur einen eigenen Unterordner mit Tagen und Einstellungen bekommt.
- Wenn du später Reverse Proxy oder HTTPS über Cloudron nutzt, bleiben die Daten weiterhin nur über die App erreichbar.
## KI-Zusammenfassungen
- Für KI-Zusammenfassungen im Archiv wird ein OpenAI-Modell aus der Mini-Klasse verwendet.
- Der API-Key kommt aus der Server-Umgebung, das Modell und der Timeout können zusätzlich zentral durch einen Admin in den Optionen angepasst werden.
- Wochenzusammenfassungen werden als `storage/users/<user>/summaries/weekly/YYYY-KW-XX.txt` gespeichert.
- Monatszusammenfassungen werden als `storage/users/<user>/summaries/monthly/YYYY-MM.txt` gespeichert.
- Der Backup-Export nimmt diese Dateien automatisch mit und legt sie im ZIP unter `summaries/weekly/` und `summaries/monthly/` ab.
### Benötigte Umgebungsvariablen
- `OPENAI_API_KEY` (erforderlich)
- `OPENAI_MODEL` (optional, Standard: `gpt-4o-mini`)
- `OPENAI_TIMEOUT` (optional, Standard: `25`)
## Lizenz
- Dieses Projekt steht unter der `PolyForm Noncommercial License 1.0.0`.
- Nicht-kommerzielle Nutzung ist erlaubt.
- Kommerzielle Nutzung ist ohne separate schriftliche Freigabe nicht erlaubt.
- Details siehe [LICENSE](/home/hnzio/Projekte/mood/LICENSE).