feat: PWA update strategy with hashed assets and cache control
Move frontend sources to frontend/, build content-hashed assets at deploy, network-first SW for shell/JS, immutable cache for /assets/, version.json update banner, and Cache-Control middleware. Docs in docs/PWA-STRATEGY.md. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -59,11 +59,14 @@ pip install -e .
|
||||
cp .env.example .env
|
||||
# APP_PIN und JWT_SECRET anpassen
|
||||
|
||||
# 3. VAPID keys (für Push)
|
||||
# 3. Frontend bauen (gehashte Assets)
|
||||
python tools/build_frontend.py
|
||||
|
||||
# 4. VAPID keys (für Push)
|
||||
python tools/gen_vapid.py
|
||||
# Output in .env eintragen
|
||||
|
||||
# 4. Starten
|
||||
# 5. Starten
|
||||
uvicorn server.app:app --reload --host 0.0.0.0 --port 8000
|
||||
```
|
||||
|
||||
@@ -190,14 +193,15 @@ Notification-Actions: **Genommen ✓**, **+15 Min**, **+30 Min**
|
||||
|
||||
```
|
||||
takeyourmeds/
|
||||
├── frontend/ # PWA-Quellen (JS, CSS, Templates)
|
||||
├── compose.yml # Docker + Traefik
|
||||
├── Dockerfile
|
||||
├── meds.yaml # Medikamenten-Zeitplan
|
||||
├── messages.yaml # Humor-Pool
|
||||
├── icon.png / icon.svg # App-Icons (Quelle)
|
||||
├── server/ # FastAPI Backend
|
||||
├── public/ # PWA Frontend
|
||||
├── tools/ # schema.sql, gen_vapid.py
|
||||
├── public/ # Build-Output (index.html, sw.js, assets/)
|
||||
├── tools/ # schema.sql, gen_vapid.py, build_frontend.py
|
||||
└── data/ # SQLite (gitignored)
|
||||
```
|
||||
|
||||
@@ -207,10 +211,13 @@ takeyourmeds/
|
||||
|
||||
```bash
|
||||
source .venv/bin/activate
|
||||
python tools/build_frontend.py # nach Änderungen in frontend/
|
||||
uvicorn server.app:app --reload --port 8000
|
||||
```
|
||||
|
||||
Service Worker cached aggressiv — für SW-Änderungen: DevTools → Application → Clear storage, oder Inkognito.
|
||||
Quellen liegen in `frontend/`; Build-Output in `public/` (gehashte JS/CSS unter `public/assets/`). PWA-Update-Strategie: `docs/PWA-STRATEGY.md`.
|
||||
|
||||
Service Worker: bei Deploy neuer `CACHE`-Name automatisch via Build. Update-Banner erscheint bei veralteter Client-Version.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user