Files
pingu-concerts/docs/wiki/Architecture.md
T

1.0 KiB

Architecture

flowchart TD
    Browser[Web Browser] --> FastAPI[FastAPI / Uvicorn]
    Android[Capacitor Android] --> FastAPI
    FastAPI --> PostgreSQL[(PostgreSQL)]
    FastAPI --> Uploads[Docker Volumes: Uploads]
    FastAPI --> External[Nominatim / externe Dienste]
    FastAPI --> Gitea[Gitea REST API]
    Android --> FCM[Firebase Cloud Messaging]

Das Backend in app/main.py rendert Jinja2-Templates und liefert CSS und JavaScript aus app/static. Authentifizierung basiert auf serverseitigen Sessions; der Browser bzw. die Android-WebView spricht ausschließlich mit MetalCircle. PostgreSQL enthält Benutzer, Veranstaltungen, Venues, Community-Daten, Diary, Patches und Push-Geräte.

Dateien werden in den Compose-Volumes concert_uploads und private_uploads gehalten. Die Android-App ist ein Capacitor-Wrapper derselben Webanwendung. Firebase wird derzeit für Android-FCM-Registrierung genutzt; ein serverseitiger Push-Versand ist noch nicht aktiviert. Der Bugreporter ist die einzige Backend-Komponente mit Gitea-Zugriff.