BazarPro selbst hosten
BazarPro ist Open Source (MIT). Mit Docker Compose läuft es auf einem einzelnen Server – mit eigener Datenbank, HTTPS über Let’s Encrypt und ohne dass du etwas selbst bauen musst. Plane für die Einrichtung etwa eine halbe Stunde ein.
Du brauchst:
- einen Linux-Server mit Docker und Docker Compose, mindestens 2 GB RAM, die Ports 80 und 443 müssen erreichbar sein
- eine Domain, bei der du DNS-Einträge anlegen kannst
- ein E-Mail-Postfach mit SMTP-Zugang – BazarPro verschickt darüber die Bestätigungscodes bei Registrierung und Passwort-Reset
Was läuft auf dem Server?
Abschnitt betitelt „Was läuft auf dem Server?“| Dienst | Aufgabe |
|---|---|
| traefik | Nimmt alle Anfragen entgegen und holt die HTTPS-Zertifikate bei Let’s Encrypt. |
| app | Die BazarPro-Webseite. |
| convex-backend | Datenbank, Dateispeicher und Server-Logik (Convex, selbst gehostet). Die Daten liegen in einem Docker-Volume. |
| convex-init | Läuft bei jedem Start einmal durch: spielt die BazarPro-Funktionen ins Backend ein und überträgt deine Einstellungen. Danach beendet es sich. |
Installation
Abschnitt betitelt „Installation“-
DNS-Einträge anlegen. Drei Namen müssen auf die IP-Adresse deines Servers zeigen. Am Beispiel der Domain
basar.example.org:Name Wofür basar.example.orgdie BazarPro-Webseite convex.basar.example.orgdie Schnittstelle zum Backend convex-site.basar.example.orgAnmeldung (z. B. Rückruf von GitHub oder Google) Am einfachsten legst du einen A-Eintrag (und bei IPv6 einen AAAA-Eintrag) für
basar.example.organ und für die beiden anderen einen CNAME aufbasar.example.org. -
Dateien herunterladen. Auf dem Server in einem neuen Ordner:
Terminal-Fenster mkdir bazarpro && cd bazarprocurl -O https://raw.githubusercontent.com/BazarPro/core/main/docker-compose.selfhost.ymlcurl -o .env https://raw.githubusercontent.com/BazarPro/core/main/.env.selfhost.example -
Einstellungen eintragen. Öffne die Datei
.envund trage mindestens ein:DOMAIN– deine Domain ohnehttps://, z. B.basar.example.orgACME_EMAIL– deine E-Mail-Adresse, Let’s Encrypt warnt dich dort vor ablaufenden ZertifikatenBAZARPRO_VERSION– die Version, die du installieren möchtest. Alle Versionen findest du unter Releases.AUTH_SMTP_…undAUTH_EMAIL_FROM– die Zugangsdaten deines E-Mail-Postfachs
-
BazarPro starten.
Terminal-Fenster docker compose -f docker-compose.selfhost.yml up -dBeim ersten Start dauert es ein bis zwei Minuten, bis alle Images geladen sind und
convex-initfertig ist. Den Fortschritt siehst du mit:Terminal-Fenster docker compose -f docker-compose.selfhost.yml logs -f convex-initAm Ende steht dort „Convex ist eingerichtet“.
-
Konto anlegen. Öffne deine Domain im Browser, klicke auf Registrieren und bestätige deine E-Mail-Adresse mit dem Code aus der Bestätigungsmail.
-
Dich zum Administrator machen. Administratoren geben öffentliche Basare frei und verwalten Nutzer:
Terminal-Fenster docker compose -f docker-compose.selfhost.yml run --rm convex-init admin du@example.orgNach einem Neuladen der Seite erscheint in der Seitenleiste der Bereich Admin.
Erst einmal ausprobieren?
Abschnitt betitelt „Erst einmal ausprobieren?“Wenn du BazarPro nur testen möchtest, kannst du Beispieldaten laden: mehrere Basare, Artikel und Konten, unter anderem admin@bazarpro.de, user1@bazarpro.de (Veranstalter) und seller@bazarpro.de (Verkäufer), alle mit dem Passwort 123456.
docker compose -f docker-compose.selfhost.yml run --rm convex-init seedAnmeldung mit GitHub oder Google
Abschnitt betitelt „Anmeldung mit GitHub oder Google“Optional können sich Nutzer mit ihrem GitHub- oder Google-Konto anmelden. Lege dafür beim Anbieter eine OAuth-App an und trage als Callback-URL ein:
- GitHub:
https://convex-site.<DOMAIN>/api/auth/callback/github - Google:
https://convex-site.<DOMAIN>/api/auth/callback/google
Client-ID und Secret kommen in die .env (AUTH_GITHUB_ID, AUTH_GITHUB_SECRET bzw. AUTH_GOOGLE_ID, AUTH_GOOGLE_SECRET). Danach BazarPro neu starten, siehe unten.
Einstellungen ändern und aktualisieren
Abschnitt betitelt „Einstellungen ändern und aktualisieren“Nach jeder Änderung an der .env und für ein Update auf eine neue Version – vorher BAZARPRO_VERSION anpassen:
docker compose -f docker-compose.selfhost.yml pulldocker compose -f docker-compose.selfhost.yml up -dconvex-init läuft dabei erneut und spielt die neue Version der Funktionen ein. Deine Daten bleiben erhalten.
Datensicherung
Abschnitt betitelt „Datensicherung“Alle Daten – Konten, Basare, Artikel und Bilder – liegen im Docker-Volume bazarpro_convex_data. Eine vollständige Sicherung als ZIP-Datei erstellst du so:
docker compose -f docker-compose.selfhost.yml run --rm -T --entrypoint sh convex-init -c \ 'export CONVEX_SELF_HOSTED_ADMIN_KEY=$(cat /keys/admin_key) && npx convex export --include-file-storage --path /tmp/backup.zip >&2 && cat /tmp/backup.zip' \ > backup-$(date +%F).zipBewahre die Sicherung an einem anderen Ort als dem Server auf. Am besten richtest du dafür einen täglichen Cronjob ein.
Wiederherstellen: Der folgende Befehl ersetzt alle aktuellen Daten durch den Stand der Sicherung:
docker compose -f docker-compose.selfhost.yml run --rm -T -v "$PWD/backup-2026-10-09.zip:/tmp/backup.zip:ro" \ --entrypoint sh convex-init -c \ 'export CONVEX_SELF_HOSTED_ADMIN_KEY=$(cat /keys/admin_key) && npx convex import --replace-all --yes /tmp/backup.zip'Convex-Dashboard (optional)
Abschnitt betitelt „Convex-Dashboard (optional)“Für einen direkten Blick in die Datenbank gibt es das Convex-Dashboard. Es braucht einen weiteren DNS-Namen, convex-dashboard.<DOMAIN>:
docker compose -f docker-compose.selfhost.yml --profile dashboard up -d# Admin-Key für die Anmeldung im Dashboard:docker compose -f docker-compose.selfhost.yml exec convex-backend ./generate_admin_key.sh