pretix-test-docker-compose/README.md

200 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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:
```bash
mkdir -p data
sudo chown -R 15371:15371 data
```
2. Container starten:
```bash
docker compose up -d
```
3. Logs pruefen, bis pretix sauber hochgefahren ist:
```bash
docker compose logs -f pretix
```
Optional kannst du auch den periodischen Cronlauf pruefen:
```bash
docker compose logs -f pretix-cron
```
4. Im Browser oeffnen:
- pretix: http://localhost:8345/control/
- Test-Mailbox: http://localhost:8025
## 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 → **Einstellungen****Allgemein** (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:
```bash
docker compose down
```
- Stoppen und auch Datenbank/Redis-Daten entfernen:
```bash
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.