Files

1.1 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]
    FastAPI --> Worker[Push-Worker / DB-Warteschlange]
    Worker --> FCM
    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. Ein optionaler Worker im FastAPI-Prozess sendet FCM-Nachrichten aus einer PostgreSQL-Warteschlange. Bis zur Zugangseinrichtung ist er standardmäßig deaktiviert. Der Bugreporter ist die einzige Backend-Komponente mit Gitea-Zugriff.