# 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.4 - 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 - Tagesvorlagen und Wochenvorlagen - kleine Pakete für wiederkehrende Einkaufs- oder Planungsbausteine - sanfte Hinweise und Vorschläge aus Zuhause, Archiv und bisherigen Planungen - globale Kategorien pro Haushalt - „Für wen?“ direkt an Lebensmitteln und Mahlzeiten - Mobile-Mehr-Menü als Sheet statt eigener Seite ## 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.3 auf 0.4 Beim Start erweitert Nouri das Schema pragmatisch direkt in SQLite weiter: Vorlagen, kleine Pakete, Kategorien pro Haushalt, Zielnutzer an Lebensmitteln und zusätzliche Einkaufs-Kontexte werden ergänzt. Vorhandene 0.3-Daten bleiben erhalten und werden weiterverwendet. ## 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.