19 lines
1.1 KiB
Markdown
19 lines
1.1 KiB
Markdown
# 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]
|
|
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.
|