🚀 Modernes Sponsorenlauf-Management
Eine innovative digitale Lösung als Alternative zu herkömmlichen Stempelkarten bei Sponsorenläufen.
🌍 The tool is currently only available in German. If you want an English version or have special requirements, please create an issue or pull request! I'm happy to help. If you want to test a demo version, just write to me and I'll give you access.
Jeder Schüler erhält eine eindeutige ID, die in der Datenbank hinterlegt ist. Diese ID wird ausgedruckt und verteilt. Beim Sponsorenlauf können die Schüler ihre ID an verschiedenen Stempelstationen (mit Barcode-Scannern) einlesen lassen.
- Raspberry Pi fungiert als WLAN-Router mit einem laufenden Script.
- Mindestens ein Laptop mit angeschlossenem Barcode-Scanner.
- Laptop muss mit dem WLAN des Raspberry Pi verbunden sein.
Screenshots anzeigen
Schau dir die Anleitung an, wie du den Raspberry Pi installieren musst.
- Verbinde dich per SSH mit deinem Raspberry:
ssh <benutzer>@raspberry.local
- Aktualisiere dein System:
sudo apt update && sudo apt upgrade - Installiere Node.js:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install -y nodejs
- Klone das Repository:
git clone https://github.com/Florian2807/sponsorenlauf-tool.git cd sponsorenlauf-tool
Note
Falls git noch nicht installiert ist, installiere es mit:
sudo apt install git-
Installiere alle benötigten Pakete:
npm install
-
Initialisiere die Datenbank:
node initDB.js
-
Erstelle das Build:
npm run build
Verwende systemd, um das Tool dauerhaft im Hintergrund laufen zu lassen.
-
Erstelle eine systemd Service-Datei:
sudo nano /etc/systemd/system/sponsorenlauf.service
Füge folgenden Inhalt ein (passe ggf. den Pfad und Benutzer an):
[Unit] Description=Sponsorenlauf Tool After=network.target [Service] Type=simple User=pi WorkingDirectory=/home/pi/sponsorenlauf-tool ExecStart=/usr/bin/npm start Restart=always Environment=NODE_ENV=production [Install] WantedBy=multi-user.target
-
Service neu laden und aktivieren:
sudo systemctl daemon-reload sudo systemctl enable sponsorenlauf sudo systemctl start sponsorenlauf -
Status prüfen:
sudo systemctl status sponsorenlauf
-
Logs anzeigen:
sudo journalctl -u sponsorenlauf -f
Um den Raspberry Pi als Router zu nutzen, folge diesen Schritten:
-
Installiere benötigte Pakete:
sudo apt install hostapd dnsmasq iptables-persistent dhcpcd
-
Deaktiviere den NetworkManager:
sudo systemctl stop NetworkManager && sudo systemctl disable NetworkManager -
Hostapd konfigurieren:
- Öffne die Datei:
sudo nano /etc/hostapd/hostapd.conf
- Füge folgendes hinzu:
interface=wlan0 driver=nl80211 country_code=DE ssid=Sponsorenlauf Backend hw_mode=a channel=44 ieee80211n=1 ieee80211ac=1 wmm_enabled=1 wpa=2 wpa_passphrase=Sponsorenlauf! wpa_key_mgmt=WPA-PSK rsn_pairwise=CCMP
- Öffne die Datei:
-
Hostapd aktivieren:
sudo nano /etc/default/hostapd
Füge diese Zeile hinzu:
DAEMON_CONF="/etc/hostapd/hostapd.conf" -
dnsmasq konfigurieren:
- Bearbeite die Datei:
sudo nano /etc/dnsmasq.conf
- Füge diese Zeilen hinzu:
interface=wlan0 dhcp-range=10.0.0.5,10.0.0.200,255.255.255.0,24h address=/sponsorenlauf.de/10.0.0.1
- Bearbeite die Datei:
-
dhcpcd konfigurieren:
sudo nano /etc/dhcpcd.conf
Füge diese Zeilen hinzu:
interface wlan0 static ip_address=10.0.0.1/24 nohook wpa_supplicant -
iptables für Routing einrichten:
-
Aktiviere die Weiterleitung:
sudo nano /etc/sysctl.conf
-
Entferne das
#vor der Zeilenet.ipv4.ip_forward=1. -
Setze die iptables-Regeln:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE && sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT && sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT && sudo chmod 644 /etc/iptables/rules.v4 && sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000
-
Speichere die iptables-Regeln:
sudo sh -c "iptables-save > /etc/iptables/rules.v4" && sudo sh -c iptables-restore < /etc/iptables/rules.v4
-
-
Alle Dienste aktivieren:
sudo systemctl unmask dhcpcd && sudo systemctl enable dhcpcd && sudo systemctl start dhcpcd sudo systemctl unmask hostapd && sudo systemctl enable hostapd && sudo systemctl start hostapd sudo systemctl enable dnsmasq && sudo systemctl start dnsmasq
-
Raspberry Pi neu starten:
sudo reboot
Nach der Einrichtung kannst du die Sponsorenlauf-Anwendung auf verschiedene Weise erreichen:
Die Anwendung ist über den konfigurierten DNS-Eintrag erreichbar:
- URL:
http://sponsorenlauf.de - Alternative:
http://www.sponsorenlauf.de
Falls der DNS-Eintrag nicht funktioniert, kannst du direkt über die IP-Adresse zugreifen:
- Raspberry Pi IP:
http://10.0.0.1 - Mit Port:
http://10.0.0.1:3000(falls die Port-Weiterleitung nicht aktiv ist)
Um sicherzustellen, dass alles funktioniert:
- Verbinde dein Gerät mit dem WLAN
Sponsorenlauf Backend - Öffne einen Browser und gehe zu
http://sponsorenlauf.de - Die Sponsorenlauf-Anwendung sollte sich öffnen
Tip
Port-Weiterleitung: Die iptables-Regel leitet automatisch HTTP-Traffic (Port 80) auf den Node.js-Server (Port 3000) weiter, sodass du keine Portnummer in der URL angeben musst.





