pretix-test-docker-compose/README.md

6.8 KiB
Raw Blame History

pretix-Testinstanz unter WSL mit Docker

Dieses Verzeichnis enthaelt ein lokales Test-Setup fuer pretix unter WSL Ubuntu 22.04 mit Docker Desktop.

Voraussetzungen

  • Windows 11 mit installiertem Docker Desktop
  • In Docker Desktop: WSL Integration fuer deine Ubuntu-Distribution aktivieren
  • Die Dateien sollten im Linux-Dateisystem liegen, also z. B. unter /home/<user>/... und nicht unter /mnt/c/...

Start

  1. Datenverzeichnis anlegen und fuer den pretix-Container beschreibbar machen:

    mkdir -p data
    sudo chown -R 15371:15371 data
    
  2. Container starten:

    docker compose up -d
    
  3. Logs pruefen, bis pretix sauber hochgefahren ist:

    docker compose logs -f pretix
    

    Optional kannst du auch den periodischen Cronlauf pruefen:

    docker compose logs -f pretix-cron
    
  4. Im Browser oeffnen:

Standardzugang

Laut offizieller pretix-Dokumentation ist nach dem ersten Start ein Admin-Zugang unter admin@localhost mit dem Passwort admin verfuegbar. Das Passwort solltest du direkt nach dem Login aendern.

Erste Schritte in pretix

Ja: Nach dem ersten Login ist ein Organizer der erste sinnvolle Schritt. Der Organizer ist in pretix die organisatorische Einheit, unter der spaeter Events, Produkte, Rechnungen und Einstellungen verwaltet werden.

Empfohlene Reihenfolge fuer die erste Einrichtung

  1. Passwort des Admin-Benutzers aendern.
  2. Einen Organizer anlegen.
  3. Ein Test-Event anlegen.
  4. Mindestens ein Ticketprodukt anlegen.
  5. Den Shop im Frontend pruefen.
  6. Eine Testbestellung ausloesen.
  7. E-Mail-Eingang in Mailpit kontrollieren.

1. Organizer anlegen

  • Im Backend auf Organizer erstellen klicken.
  • Einen Namen vergeben, z. B. Test Organizer.
  • Eine kurze Kennung oder einen Slug vergeben, falls pretix danach fragt.
  • Adresse, E-Mail und weitere Stammdaten kannst du fuer den Test zunaechst minimal ausfuellen und spaeter nachziehen.

2. Event anlegen

  • Innerhalb des Organizers ein neues Event erstellen.
  • Als Titel z. B. Testevent 2026 waehlen.
  • Eine Zeitzone setzen, sinnvollerweise Europe/Berlin.
  • Ein Datum in der Zukunft waehlen, damit das Event nicht direkt als abgelaufen wirkt.
  • Die Standardwaehrung sollte in diesem Setup bereits auf EUR stehen.

3. Ticketprodukt anlegen

  • Im Event zu den Produkten wechseln.
  • Ein neues Produkt vom Typ Ticket anlegen.
  • Beispielwerte fuer den Test:
    • Name: Standardticket
    • Preis: 10,00 EUR
    • Verfuegbarkeit: z. B. 100
  • Das Produkt speichern und sicherstellen, dass es sichtbar und verkaeuflich ist.

4. Shop testen

  • Im Event die Vorschau oder den Shop-Link oeffnen.
  • Pruefen, ob das Ticket im Frontend erscheint.
  • Ein Ticket in den Warenkorb legen und eine Testbestellung abschicken.

5. E-Mails pruefen

  • Die Testinstanz liefert E-Mails an Mailpit aus, nicht an ein echtes Postfach.
  • Mailpit erreichst du unter http://localhost:8025.
  • Dort solltest du Bestell- oder System-E-Mails fuer den Test sehen.

Sinnvoller Minimaltest

Wenn du pretix nur einmal durchklicken willst, reicht dieser Ablauf:

  1. Organizer erstellen.
  2. Event erstellen.
  3. Ein Ticketprodukt anlegen.
  4. Shop-Link oeffnen.
  5. Testbestellung absenden.
  6. E-Mail in Mailpit kontrollieren.

Praxisbeispiel: Kostenlose Veranstaltungsreihe Mo-Do mit Anmeldepflicht

Warum "Quota braucht ein Datum" und was das bedeutet

pretix unterscheidet zwischen:

  • Einzelevent: Ein festes Datum, eine einzige Quota. Keine Datumsauswahl in der Quota noetig.
  • Veranstaltungsreihe (Sub-Events): Mehrere Termine unter einem Event. Jede Quota kann sich auf bestimmte Termine beziehen.

Wenn du bei der Quota ein Datum auswaehlen willst (oder musst), aber keines angezeigt wird, bedeutet das: das Event ist noch kein Serienevent. Sub-Events muessen erst aktiviert werden.

Schritt 1: Sub-Events am Event aktivieren

  1. Ins Event wechseln → EinstellungenAllgemein (oder Konfiguration).
  2. Die Option "Dieses Event hat mehrere Termine / Sub-Events" (englisch: "This event has multiple dates") aktivieren.
  3. Speichern.

Danach erscheint im linken Menue ein neuer Punkt: Termine (oder Sub-Events).

Schritt 2: Die einzelnen Termine anlegen

Jeden Wochentermin einmal anlegen. Beispiel fuer eine Woche:

Name Datum Beginn Ende
Montag-Session 13.04.2026 17:30 18:00
Dienstag-Session 14.04.2026 17:30 18:00
Mittwoch-Session 15.04.2026 17:30 18:00
Donnerstag-Session 16.04.2026 17:30 18:00

Fuer laufende Serien empfiehlt es sich, alle Termine einer Woche auf einmal anzulegen oder eine Woche spater zu ergaenzen.

Tipp: Es gibt keine automatische Wiederholung in pretix. Jeder Termin muss einzeln angelegt werden entweder manuell oder per API.

Schritt 3: Kostenfreies Produkt anlegen (falls nicht schon passiert)

  • Name z. B. Anmeldung
  • Preis: 0,00 EUR
  • Das Produkt muss trotz Nullpreis angelegt sein, damit pretix die Buchung als "Bestellung" behandelt.

Schritt 4: Quota anlegen

  • Zu Quotas wechseln → neue Quota anlegen.
  • Kontingent z. B. 20 (Maximale Teilnehmerzahl pro Termin).
  • Unter "Gilt fuer Termine" jetzt die gewuenschten Sub-Events auswaehlen.
  • Jeder Termin bekommt idealerweise eine eigene Quota, damit die Kapazitaet pro Tag separat gilt.

Schritt 5: Shop pruefen

  • Den Shop-Link des Events oeffnen.
  • Eine der Termine auswaehlen und kostenlos anmelden.
  • Bestaetigung in Mailpit pruefen (http://localhost:8025).

Zusammenfassung des Datenmodells fuer diesen Fall

Organizer
 └── Event "Wochentreffen"  (Sub-Events aktiviert)
      ├── Sub-Event "Montag 13.04."
      ├── Sub-Event "Dienstag 14.04."
      ├── Sub-Event "Mittwoch 15.04."
      ├── Sub-Event "Donnerstag 16.04."
      ├── Produkt "Anmeldung" (0,00 EUR)
      └── Quotas (je Termin, z. B. 20 Plaetze)

Cron-Hinweis

pretix erwartet, dass regelmaessig pretix cron ausgefuehrt wird. In diesem Test-Setup uebernimmt das der Dienst pretix-cron automatisch alle 5 Minuten. Direkt nach dem ersten Start kann die Warnung im Dashboard noch kurz sichtbar sein, bis der erste Lauf erfolgt ist.

Stoppen und Aufraeumen

  • Stoppen:

    docker compose down
    
  • Stoppen und auch Datenbank/Redis-Daten entfernen:

    docker compose down -v
    
  • Das Verzeichnis data/ bleibt dabei erhalten. Wenn du wirklich ganz von vorn beginnen willst, kannst du es zusaetzlich loeschen.

Wichtige Hinweise

  • Diese Konfiguration ist nur fuer lokale Tests gedacht.
  • Fuer produktiven Betrieb solltest du der offiziellen pretix-Doku folgen und HTTPS, Reverse Proxy, Backup und Härtung sauber einrichten.