2026-04-09 19:00:12 +02:00
2026-04-09 19:00:12 +02:00
2026-04-09 19:00:12 +02:00
2026-04-09 19:00:12 +02:00
2026-04-09 19:00:12 +02:00
2026-04-09 19:00:12 +02:00

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 hamburg und germany
  • 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-Anwendung
  • deploy/nginx/eventlens.conf: Beispiel fuer Reverse Proxy
  • docker-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 Eventsuche
  • NOTIFICATION_EMAIL_TO: Empfaenger fuer Benachrichtigungen
  • SMTP_HOST, SMTP_USER, SMTP_PASS: SMTP-Zugang fuer E-Mails

Beispielablauf

  1. 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"
  }'
  1. Sync manuell anstossen:
curl -X POST http://127.0.0.1:8000/sync
  1. Events abfragen:
curl http://127.0.0.1:8000/events
  1. 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:8000 proxyen.
  • 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
S
Description
No description provided
Readme 231 KiB
Languages
Python 74.9%
JavaScript 12.5%
CSS 7.1%
HTML 4%
Shell 1.5%