# Architecture ```mermaid 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.