58 lines
2.4 KiB
Markdown
58 lines
2.4 KiB
Markdown
# Nouri
|
|
|
|
Nouri ist eine kleine private Flask-App für einen Haushalt, um Essensideen, Einkäufe, vorhandene Lebensmittel und eine einfache Tages- oder Wochenplanung ruhig und alltagsnah festzuhalten.
|
|
|
|
## Merkmale in Version 0.3
|
|
|
|
- Lebensmittel und Mahlzeitenideen anlegen
|
|
- Fotos lokal hochladen
|
|
- Einkaufsliste mit Abhaken
|
|
- „Zuhause“ als sichtbarer Vorrat mit Tageszeit-Filtern
|
|
- Archiv mit Suche und schneller Wiederaufnahme
|
|
- Tagesplan mit schnellen Vorschlägen je Tageszeit
|
|
- Wochenansicht für die nächsten 7 Tage
|
|
- einfache Suche und Filter für Lebensmittel und Mahlzeitenideen
|
|
- mehrere Haushaltsnutzer mit Rollen
|
|
- gemeinsame und persönliche Inhalte
|
|
- Profilseite und Passwortänderung
|
|
- kleine Admin-Verwaltung für Nutzer
|
|
- kompaktere mobile Navigation mit Bottom-Bar
|
|
|
|
## Lokal starten
|
|
|
|
```bash
|
|
python3 -m venv .venv
|
|
. .venv/bin/activate
|
|
pip install -r requirements.txt
|
|
flask --app wsgi run --debug
|
|
```
|
|
|
|
Dann `http://127.0.0.1:5000` öffnen und beim ersten Start einen ersten Haushalt-Benutzer unter `/auth/setup` anlegen.
|
|
|
|
## Konfiguration
|
|
|
|
Die App legt Daten standardmäßig unter `./data` ab.
|
|
|
|
Wichtige Umgebungsvariablen:
|
|
|
|
- `NOURI_SECRET_KEY`: Session-Secret für Produktion
|
|
- `NOURI_DATA_DIR`: Pfad für Datenbank und Uploads, z. B. `/app/data` auf Cloudron
|
|
- `NOURI_MAX_UPLOAD_MB`: maximales Upload-Limit in MB, Standard `5`
|
|
|
|
## Migration von 0.2 auf 0.3
|
|
|
|
Beim Start erweitert Nouri das Schema pragmatisch direkt in SQLite: Haushalt, Rollen, Aktiv-Status und Sichtbarkeit (`persönlich` oder `Für alle`) werden ergänzt. Vorhandene 0.2-Daten bleiben erhalten und werden automatisch einem gemeinsamen Haushaltskontext zugeordnet.
|
|
|
|
## Cloudron-Hinweis
|
|
|
|
Für Cloudron ist die App jetzt so vorbereitet, dass Datenbank und Uploads unter `/app/data` liegen. Das Startskript setzt `NOURI_DATA_DIR=/app/data`, legt die SQLite-Datei dort an und startet die App per `gunicorn`.
|
|
|
|
Lokale Testdaten und produktive Cloudron-Daten bleiben bewusst getrennt:
|
|
|
|
- lokal nutzt Nouri ohne gesetzte Variable standardmäßig `./data`
|
|
- auf Cloudron nutzt Nouri `/app/data`
|
|
- `data/` ist in `.gitignore` und `.dockerignore` ausgeschlossen und wird weder eingecheckt noch ins Image kopiert
|
|
- `/app/data` ist auf Cloudron persistent und bleibt bei App-Updates erhalten
|
|
|
|
Wenn die App auf Cloudron bereits installiert ist, bitte **kein neues `cloudron install`** ausführen. Stattdessen die bestehende App aktualisieren, also ein neues Image bzw. Paket bauen und dann die vorhandene Installation updaten.
|