Den Vereinsdeckel einrichten
Schritt für Schritt, ohne IT-Kenntnisse. Hakt ab, was erledigt ist – die Strichliste zeigt, wie weit ihr seid. Und klappt etwas nicht, steht die Lösung gleich darunter.
Wo soll der Vereinsdeckel laufen?
Unsicher? Nehmt „Im Internet“ – dann kümmert sich Vercel um den Server.
- 1
Ein kostenloses GitHub-Konto anlegen
2 MinutenGitHub bewahrt eure Kopie des Vereinsdeckels auf. Mit dem GitHub-Konto meldet ihr euch danach auch bei Vercel und Neon an – ein Konto für alles.
Auf github.com/signup registrieren. Am besten mit einer E-Mail-Adresse des Vereins, damit nicht alles an einer Person hängt.
Klappt nicht?
Die Bestätigungs-Mail kommt nicht an
Im Spam-Ordner nachsehen. GitHub schickt einen Code, den ihr auf der Seite eintippt.
- 2
Die zwei Werte erzeugen
1 MinuteVercel fragt gleich nach zwei langen Zufallswerten. Erzeugt sie hier mit einem Klick und kopiert sie nachher in die Felder bei Vercel.
Die Werte entstehen hier in eurem Browser und werden nirgendwohin geschickt.
- Geheimschlüssel
BETTER_AUTH_SECRET - Sichert Anmeldungen und den zweiten Faktor.
- Einrichtungs-Code
SETUP_CODE - Nur wer ihn kennt, kann das erste Admin-Konto anlegen.
Wichtig: Beide Werte jetzt im Passwort-Manager (oder auf Papier im Vereinsordner) aufheben. Vercel zeigt den Geheimschlüssel später nicht mehr an – bei einem Umzug wird genau dieser gebraucht.
Klappt nicht?
Kann ich mir die Werte auch selbst ausdenken?
Ja – nur Buchstaben und Ziffern, der Geheimschlüssel mindestens 32 Zeichen, der Einrichtungs-Code mindestens 16. Je länger, desto besser.
- Geheimschlüssel
- 3
Mit Vercel installieren
5 Minuten, dann ein paar Minuten wartenDer Knopf öffnet Vercel mit allem vorbereitet. Dort meldet ihr euch mit GitHub an. Vercel führt euch durch drei Dinge:
- Repository anlegen: Vercel legt eine Kopie des Vereinsdeckels in eurem GitHub-Konto an.
- Datenbank (Neon): „Add“ bzw. „Create“ wählen und als Region Frankfurt (eu-central-1). Die Datenbankadresse trägt Vercel selbst ein.
- Die zwei Werte aus Schritt 2 in die Felder
BETTER_AUTH_SECRETundSETUP_CODEeinfügen – dann Deploy.
vercel.com/new- ✓Repository anlegen
- ✓Neon-Datenbank · Frankfurt
- ✓BETTER_AUTH_SECRET · SETUP_CODE
Nach ein paar Minuten zeigt Vercel die Adresse eurer App, z. B.
https://vereinsdeckel-xyz.vercel.app.Zum Tarif: Vercels kostenloser Tarif „Hobby“ ist laut Vercel nur für private, nicht-kommerzielle Nutzung gedacht und enthält keinen Vertrag zur Auftragsverarbeitung (DSGVO). Wer über die App verkauft, sollte den Tarif „Pro“ prüfen. Neon reicht im kostenlosen Tarif für einen Verein.
Klappt nicht?
Der Bau bricht ab: „DATABASE_URL fehlt“
Die Datenbank ist nicht verbunden. Bei Vercel im Projekt Storage → Neon-Datenbank anlegen bzw. verbinden (Region Frankfurt). Geänderte Werte wirken erst nach dem nächsten Veröffentlichen: bei Vercel im Projekt Deployments → beim obersten Eintrag die drei Punkte → Redeploy.
Bei Vercel steht die Datenbank in den USA
Beim Anlegen wurde eine andere Region gewählt. Für den Datenschutz die Datenbank löschen und neu in Frankfurt (eu-central-1) anlegen – solange noch keine Daten drin sind, geht das gefahrlos.
Ich habe die zwei Werte vergessen einzutragen
Bei Vercel im Projekt Settings → Environment Variables beide nachtragen (Namen genau so schreiben wie oben). Geänderte Werte wirken erst nach dem nächsten Veröffentlichen: bei Vercel im Projekt Deployments → beim obersten Eintrag die drei Punkte → Redeploy.
- 4
Einrichten: Admin-Konto und PIN
3 MinutenDie Adresse eurer App öffnen und
/einrichtenanhängen. Dann Einrichtungs-Code, Name, E-Mail, Passwort und eine Verwaltungs-PIN eingeben.vereinsdeckel-xyz.vercel.app/einrichtenEinrichtenEinrichtungs-CodeName · E-Mail · PasswortVerwaltungs-PINKonto anlegenDen Einrichtungs-Code braucht ihr danach nicht mehr – ihr könnt ihn bei Vercel löschen.
Klappt nicht?
„Einrichtung gesperrt: Es fehlt der Einrichtungs-Code“
SETUP_CODEfehlt oder ist kürzer als 16 Zeichen. Bei Vercel unter Settings → Environment Variables eintragen bzw. verlängern. Geänderte Werte wirken erst nach dem nächsten Veröffentlichen: bei Vercel im Projekt Deployments → beim obersten Eintrag die drei Punkte → Redeploy.„Einrichtungs-Code stimmt nicht“
Den Code noch einmal genau aus dem Passwort-Manager kopieren – Groß- und Kleinschreibung zählt. Nach zehn Versuchen ist die Einrichtung 15 Minuten gesperrt.
Statt der Seite kommt eine Fehlerseite
Meist fehlt der Geheimschlüssel
BETTER_AUTH_SECREToder er ist kürzer als 32 Zeichen. Bei Vercel unter Settings → Environment Variables prüfen. Geänderte Werte wirken erst nach dem nächsten Veröffentlichen: bei Vercel im Projekt Deployments → beim obersten Eintrag die drei Punkte → Redeploy.Statt „Einrichten“ kommt die Anmeldung
Dann gibt es schon ein Konto – die Einrichtung ist erledigt. Mit E-Mail und Passwort anmelden.
- 5
Der Assistent macht den Rest
10–20 MinutenNach dem Konto führt euch der Einrichtungsassistent durch alles Weitere: Vereinsname und Logo, zweiter Faktor, Datenschutz, Artikel mit Startvorlage und die Mitglieder (auch als Liste zum Hochladen).
Eigene Adresse (optional): Statt
…vercel.appz. B.theke.mein-verein.de. Bei Vercel im Projekt Settings → Domains die Adresse eintragen, dann beim Anbieter eurer Domain den CNAME-Eintrag setzen, den Vercel anzeigt – nur für die Subdomain, nicht die Nameserver der ganzen Domain umstellen.QR-Karten erst drucken, wenn die endgültige Adresse steht. Die Karten enthalten die Adresse.
Klappt nicht?
Die QR-Codes zeigen noch die vercel.app-Adresse
Erst die eigene Adresse bei Vercel eintragen und warten, bis sie funktioniert – die App erkennt sie selbst. Danach zeigen Links und QR-Codes die neue Adresse.
Die eigene Adresse geht nicht
DNS-Änderungen brauchen beim Anbieter manchmal bis zu einer Stunde. Bei Vercel unter Settings → Domains steht, welcher Eintrag noch fehlt.
Später: Updates holen
- Vorher sichern: Verwaltung → Einstellungen → Sichern & Umziehen → Sicherung herunterladen.
- In eurer Kopie bei GitHub: Reiter Actions → links „Update holen“ → „Run workflow“.
- Ein paar Minuten warten – Vercel veröffentlicht die neue Version und spielt Datenbank-Änderungen selbst ein.
Habt ihr den Code selbst verändert, gehen diese Änderungen dabei verloren.
- 1
Docker bereitstellen
je nach GerätDer Vereinsdeckel läuft als Docker-Container. Was ihr braucht:
- Synology: im Paket-Zentrum den Container Manager installieren.
- Raspberry Pi: ab Modell 4 mit einem 64-Bit-System (Raspberry Pi OS 64-bit), dazu Docker.
- Eigener Server oder PC: Docker mit Docker Compose.
Klappt nicht?
„exec format error“ oder „no matching manifest“
Auf dem Gerät läuft ein 32-Bit-System. Den Vereinsdeckel gibt es für 64 Bit (PC/Server und Raspberry Pi ab Modell 4) – das System neu mit der 64-Bit-Version aufsetzen.
- 2
Datei speichern und starten
2 Minuten, dann eine Minute wartenEinen Ordner anlegen, z. B.
vereinsdeckel, und darin diese Datei alsdocker-compose.ymlspeichern (auch zu finden im Repository):# Vereinsdeckel mit Docker starten: docker compose up -d # Die Daten liegen im Ordner ./daten neben dieser Datei – diesen Ordner sichern. # Den Einrichtungs-Code für /einrichten zeigt: docker compose logs vereinsdeckel services: vereinsdeckel: image: ghcr.io/floddel/vereinsdeckel:latest restart: unless-stopped ports: - "3000:3000" volumes: - ./daten:/data environment: # Feste Adresse für Mitglieder-Links und QR-Karten (sobald die App über HTTPS erreichbar ist): # APP_URL: https://theke.mein-verein.de TZ: Europe/BerlinDann im Ordner starten:
docker compose up -d
✔ Container vereinsdeckel Started
Synology: Container Manager → Projekt → Erstellen → Ordner wählen → „docker-compose.yml hochladen“ → Erstellen.
Klappt nicht?
„port is already allocated“
Port 3000 ist schon belegt. In der Datei
"3000:3000"durch z. B."3001:3000"ersetzen und die App dann unter:3001öffnen.„docker: command not found“
Docker ist noch nicht installiert (Schritt 1). Bei Synology den Weg über den Container Manager nehmen.
- 3
Den Einrichtungs-Code ablesen
1 MinuteBeim ersten Start legt der Vereinsdeckel selbst einen Geheimschlüssel und einen Einrichtungs-Code an – beide im Ordner
daten. Den Code zeigt das Protokoll:docker compose logs vereinsdeckel
Vereinsdeckel: neuer Geheimschlüssel in /data/.auth-secret angelegt
Vereinsdeckel: Einrichtungs-Code für /einrichten: 7kQ2mX…
Synology: Container Manager → Container → Protokoll. Der Code steht auch in der Datei
daten/.setup-code. - 4
Einrichten: Admin-Konto und PIN
3 Minuten, dann der AssistentIm Browser
http://<adresse-des-geräts>:3000/einrichtenöffnen, den Code eingeben und das Konto anlegen. Der Einrichtungsassistent führt durch den Rest: Verein, Logo, zweiter Faktor, Datenschutz, Artikel und Mitglieder.192.168.1.20:3000/einrichtenEinrichtenEinrichtungs-CodeName · E-Mail · PasswortVerwaltungs-PINKonto anlegenKlappt nicht?
Die Seite lädt nicht
Ist der Rechner im selben Netz wie das Gerät? Stimmt die Adresse (bei Synology z. B. der Name der DiskStation)? Nach dem Start eine Minute warten.
„Einrichtungs-Code stimmt nicht“
Den Code genau aus dem Protokoll übernehmen – Groß- und Kleinschreibung zählt. Nach zehn Versuchen ist die Einrichtung 15 Minuten gesperrt.
- 5
Von außen erreichbar machen
je nach GerätIm Vereinsheim-WLAN klappt alles über
http://…:3000. Damit Mitglieder ihren Bierdeckel auch unterwegs sehen – und damit die Theke offline arbeiten kann –, braucht der Vereinsdeckel eine Adresse mit HTTPS, z. B.https://theke.mein-verein.de:- Synology: Systemsteuerung → Anmeldeportal → Erweitert → Reverse Proxy (Ziel
localhost:3000) plus Zertifikat über Let's Encrypt. - Eigener Server: z. B. Caddy davorschalten – holt das Zertifikat selbst.
Danach in
docker-compose.ymldie ZeileAPP_URLeinkommentieren, die Adresse eintragen und neu starten:docker compose up -d.QR-Karten erst drucken, wenn die endgültige Adresse steht.
Klappt nicht?
Mitglieder sehen ihren Bierdeckel unterwegs nicht
Die App ist nur im Vereins-WLAN erreichbar. Erst mit einer HTTPS-Adresse von außen (Reverse Proxy) klappt es auch unterwegs.
Im Protokoll steht „Base URL is not set“
Harmlos, solange keine APP_URL gesetzt ist.
- Synology: Systemsteuerung → Anmeldeportal → Erweitert → Reverse Proxy (Ziel
Sicherung und Updates
Alles liegt im Ordner daten neben der docker-compose.yml – diesen ganzen Ordner sichern, am besten bei gestopptem Container (docker compose stop). Darin liegt auch der Geheimschlüssel.
Neue Version holen – vorher sichern:
docker compose pull
✔ vereinsdeckel Pulled
$ docker compose up -d
✔ Container vereinsdeckel Started
Immer noch nicht weiter?
Fragt in den Discussions auf GitHub. Dort lesen andere Vereine mit – und ich, so oft es geht. Was öfter gefragt wird, landet in dieser Anleitung.