3.5 KiB
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.5
- 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
- ruhige 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
- Einkaufsrhythmus mit geplantem Einkaufstag und später aktivierten Bedarfen
- ausgewogene Ergänzungsvorschläge auf Basis ruhiger Bausteine
- einfache Kombinations- und Rezeptideen aus zuhause vorhandenen Lebensmitteln
- Optionen für Erinnerungen, Hinweise und kleine Routinen
- PWA-Vorbereitung mit Web App Manifest, Service Worker und optionalem Web Push
Lokal starten
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 ProduktionNOURI_DATA_DIR: Pfad für Datenbank und Uploads, z. B./app/dataauf CloudronNOURI_MAX_UPLOAD_MB: maximales Upload-Limit in MB, Standard5NOURI_VAPID_PUBLIC_KEY: öffentlicher VAPID-Schlüssel für Web PushNOURI_VAPID_PRIVATE_KEY: privater VAPID-Schlüssel für Web PushNOURI_VAPID_SUBJECT: Kontaktangabe für Web Push, z. B.mailto:mail@hnz.io
Migration von 0.4 auf 0.5
Beim Start erweitert Nouri das Schema pragmatisch direkt in SQLite weiter: Einkaufsrhythmus, vorgemerkte Bedarfe, Nutzer-Einstellungen, Push-Registrierungen und Baustein-Zuordnungen für Kategorien werden ergänzt. Vorhandene 0.4-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.gitignoreund.dockerignoreausgeschlossen und wird weder eingecheckt noch ins Image kopiert/app/dataist 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.
Lizenz
Nouri ist in diesem Repository für private, nicht-kommerzielle Nutzung freigegeben. Details stehen in LICENSE.md.