release nouri 1.0.0
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
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
|
||||
## Merkmale in Version 1.0.0
|
||||
|
||||
- Lebensmittel und Mahlzeitenideen anlegen
|
||||
- Fotos lokal hochladen
|
||||
@@ -22,12 +22,8 @@ Nouri ist eine kleine private Flask-App für einen Haushalt, um Essensideen, Ein
|
||||
- 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
|
||||
- PWA-Grundlage mit Web App Manifest, Service Worker und optionalem Web Push
|
||||
|
||||
## Lokal starten
|
||||
|
||||
@@ -47,28 +43,104 @@ 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_DATA_DIR`: Pfad für Datenbank und Uploads, lokal standardmäßig `./data`, auf Cloudron `/app/data`
|
||||
- `NOURI_MAX_UPLOAD_MB`: maximales Upload-Limit in MB, Standard `5`
|
||||
- `NOURI_SECURE_COOKIES`: bei HTTPS in Produktion auf `1` setzen
|
||||
- `NOURI_TIMEZONE`: lokale Zeitzone, z. B. `Europe/Berlin`
|
||||
- `NOURI_VAPID_PUBLIC_KEY`: öffentlicher VAPID-Schlüssel für Web Push
|
||||
- `NOURI_VAPID_PRIVATE_KEY`: privater VAPID-Schlüssel für Web Push
|
||||
- `NOURI_VAPID_SUBJECT`: Kontaktangabe für Web Push, z. B. `mailto:mail@hnz.io`
|
||||
|
||||
## Migration von 0.4 auf 0.5
|
||||
## Migration und Datenhaltung
|
||||
|
||||
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.
|
||||
Beim Start erweitert Nouri das SQLite-Schema pragmatisch direkt weiter. Vorhandene Daten bleiben dabei 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:
|
||||
Wichtig für die Trennung zwischen lokal und Produktion:
|
||||
|
||||
- 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
|
||||
- `data/` ist nicht für Git oder das Paket gedacht
|
||||
- produktive Daten unter `/app/data` bleiben bei 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.
|
||||
## Cloudron
|
||||
|
||||
Nouri ist so vorbereitet, dass Code und persistente Daten sauber getrennt bleiben:
|
||||
|
||||
- Code liegt im Container unter `/app/code`
|
||||
- persistente Daten liegen unter `/app/data`
|
||||
- Datenbank und Uploads werden nicht aus dem lokalen `./data` nach Produktion übernommen
|
||||
- Updates ersetzen den Code, aber nicht die produktiven Inhalte in `/app/data`
|
||||
|
||||
### Neu installieren
|
||||
|
||||
1. Paket oder Image bauen und nach Cloudron hochladen.
|
||||
2. Die App einmal per Cloudron installieren.
|
||||
3. Nach dem ersten Start Nouri öffnen.
|
||||
4. Den ersten Haushalt-Zugang unter `/auth/setup` anlegen.
|
||||
5. Danach Push, Erinnerungen und Einkaufstag in den Optionen einrichten.
|
||||
|
||||
### Bestehende Installation aktualisieren
|
||||
|
||||
Wenn Nouri bereits installiert ist, bitte **kein neues `cloudron install`** ausführen.
|
||||
Stattdessen die bestehende App aktualisieren, zum Beispiel mit:
|
||||
|
||||
```bash
|
||||
cloudron update --no-backup --app <deine-app> --server <dein-server> --token <dein-token>
|
||||
```
|
||||
|
||||
Dabei gilt:
|
||||
|
||||
- produktive Daten unter `/app/data` bleiben erhalten
|
||||
- lokale Testdaten aus `./data` werden nicht mit hochgeladen
|
||||
- die bestehende Installation läuft mit demselben persistenten Datenordner weiter
|
||||
|
||||
### Wichtige Cloudron-Variablen
|
||||
|
||||
Für eine saubere produktive Installation sind diese Werte sinnvoll:
|
||||
|
||||
- `NOURI_DATA_DIR=/app/data`
|
||||
- `NOURI_SECURE_COOKIES=1`
|
||||
- `NOURI_TIMEZONE=Europe/Berlin`
|
||||
- `NOURI_SECRET_KEY=<eigenes-secret>`
|
||||
- `NOURI_VAPID_PUBLIC_KEY=<public-key>`
|
||||
- `NOURI_VAPID_PRIVATE_KEY=<private-key>`
|
||||
- `NOURI_VAPID_SUBJECT=mailto:mail@hnz.io`
|
||||
|
||||
## Push einrichten
|
||||
|
||||
### 1. VAPID-Schlüssel erzeugen
|
||||
|
||||
Die Schritte dafür stehen kompakt in [PUSH_SETUP.md](PUSH_SETUP.md).
|
||||
|
||||
### 2. VAPID-Werte in Cloudron setzen
|
||||
|
||||
Zum Beispiel so:
|
||||
|
||||
```bash
|
||||
cloudron env set --app <deine-app> \
|
||||
NOURI_VAPID_PUBLIC_KEY='...' \
|
||||
NOURI_VAPID_PRIVATE_KEY='...' \
|
||||
NOURI_VAPID_SUBJECT='mailto:mail@hnz.io'
|
||||
```
|
||||
|
||||
Danach die App neu starten:
|
||||
|
||||
```bash
|
||||
cloudron restart --app <deine-app>
|
||||
```
|
||||
|
||||
### 3. Push auf dem Gerät aktivieren
|
||||
|
||||
1. Nouri im Browser oder auf dem iPhone öffnen.
|
||||
2. In `Optionen` auf **Push erlauben** tippen.
|
||||
3. Optional eine Test-Mitteilung senden.
|
||||
4. Auf dem iPhone Nouri am besten zusätzlich zum Home-Bildschirm hinzufügen.
|
||||
|
||||
Wichtig:
|
||||
|
||||
- Push funktioniert nur auf Geräten, die sich einmal aktiv registriert haben.
|
||||
- Ohne VAPID-Werte bleibt Push bewusst deaktiviert.
|
||||
- Die Browser- oder iPhone-Freigabe allein reicht nicht: Hinweise müssen zusätzlich in Nouri eingeschaltet sein.
|
||||
|
||||
## Lizenz
|
||||
|
||||
|
||||
Reference in New Issue
Block a user