51aab152ff898cf3cda7d39d56ae8910b6d303df
eventlens
eventlens ist ein selbst gehostetes MVP zum Beobachten von Kuenstlern und Events in Hamburg oder ganz Deutschland.
Funktionen
- Watchlist fuer Kuenstler oder Events
- Regionen
hamburgundgermany - Geplanter Event-Abgleich ueber die Ticketmaster Discovery API
- E-Mail-Benachrichtigung bei neu gefundenen Terminen
- Markierung, ob Tickets gekauft wurden
- Erinnerung etwa eine Woche vor dem Termin
- Webfrontend ohne separaten Build-Step
- Docker-Deployment hinter NGINX
Projektstruktur
backend/: FastAPI-Anwendungdeploy/nginx/eventlens.conf: Beispiel fuer Reverse Proxydocker-compose.yml: App- und Datenbank-Container
Start
cp .env.example .env
docker compose up -d --build
Danach ist das Webfrontend lokal unter http://127.0.0.1:8000 erreichbar.
Die Swagger-Oberflaeche liegt unter http://127.0.0.1:8000/docs.
API-Statusinfo findest du unter http://127.0.0.1:8000/api.
Wichtige Umgebungsvariablen
TICKETMASTER_API_KEY: noetig fuer die externe EventsucheNOTIFICATION_EMAIL_TO: Empfaenger fuer BenachrichtigungenSMTP_HOST,SMTP_USER,SMTP_PASS: SMTP-Zugang fuer E-Mails
Beispielablauf
- Watch Item anlegen:
curl -X POST http://127.0.0.1:8000/watch-items \
-H "Content-Type: application/json" \
-d '{
"name": "AnnenMayKantereit",
"watch_type": "artist",
"region_scope": "hamburg"
}'
- Sync manuell anstossen:
curl -X POST http://127.0.0.1:8000/sync
- Events abfragen:
curl http://127.0.0.1:8000/events
- Ticketkauf markieren:
curl -X PATCH http://127.0.0.1:8000/events/1/purchase \
-H "Content-Type: application/json" \
-d '{"is_ticket_purchased": true}'
Hinweise fuer Debian 13 und NGINX
- NGINX kann nativ auf dem Host laufen und auf
127.0.0.1:8000proxyen. - Das Backend lauscht absichtlich nur auf
127.0.0.1, damit es nicht direkt aus dem Internet erreichbar ist. - Fuer produktiven Betrieb solltest du TLS im NGINX-Terminator aktivieren.
- Das Frontend wird direkt vom FastAPI-Container ausgeliefert, es ist kein Node- oder Build-Container noetig.
Naechste sinnvolle Ausbaustufen
- Web-Frontend fuer Watchlist und Events
- Weitere Datenquellen neben Ticketmaster
- Telegram oder Push-Benachrichtigungen
- Nutzerverwaltung
Description
Languages
Python
74.9%
JavaScript
12.5%
CSS
7.1%
HTML
4%
Shell
1.5%