Auf dem Server läuft Gunicorn als www-data, Deployment (git pull/migrate) aber als root. db.sqlite3 lag bisher direkt im Projektordner, den nur root beschreiben kann - www-data konnte also nie in die DB schreiben (Sessions, jetzt auch UsageEvent). Naheliegender Fix wäre gewesen, www-data Schreibzugriff auf den ganzen Projektordner zu geben, das hätte aber auch den Quellcode/.git für den Webserver-Prozess beschreibbar gemacht - unnötiges Risiko. Stattdessen: SQLite liegt jetzt in data/db.sqlite3, einem eigenen, isolierten Verzeichnis (wird von Django automatisch angelegt). Nur dieses eine Verzeichnis muss www-data gehören, der Rest des Projekts bleibt root-only. - piomint/settings.py: DATABASES zeigt auf DATA_DIR (BASE_DIR/data), die per Path.mkdir(exist_ok=True) beim Settings-Import automatisch angelegt wird - .gitignore: /data/ und db.sqlite3 ergänzt - die echte Datenbank darf nie ins Repo gelangen (Sessions/User-Daten) - Alte, ungenutzte db.sqlite3 (leerer Platzhalter) aus dem Repo entfernt Lokal getestet: frisches migrate legt data/db.sqlite3 automatisch an, Track-Endpoint und Dashboard-Auth-Schutz funktionieren mit dem neuen Pfad. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>main
parent
710220ff71
commit
af69060f2c
Loading…
Reference in new issue