4.5 KiB
4.5 KiB
🚀 Schnellstart
Diese Anleitung führt Sie durch die Installation und den ersten Start des Ninja Cross Parkour Systems.
📋 Voraussetzungen
System-Anforderungen
- Node.js v16 oder höher
- PostgreSQL 12 oder höher
- npm oder yarn
- Git (für Installation)
Hardware-Anforderungen
- RFID-Reader für Zeitmessung
- RFID-Karten für Spieler
- Server (Linux empfohlen)
- Netzwerk für API-Zugriff
🔧 Installation
1. Repository klonen
git clone <repository-url>
cd ninjaserver
2. Abhängigkeiten installieren
npm install
3. Umgebungsvariablen konfigurieren
cp .env.example .env
Bearbeiten Sie die .env-Datei:
# Datenbank
DB_HOST=localhost
DB_PORT=5432
DB_NAME=ninjaserver
DB_USER=your_username
DB_PASSWORD=your_password
# Server
PORT=3000
NODE_ENV=development
# JWT Secret
JWT_SECRET=your_jwt_secret_here
# Supabase (optional)
SUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_supabase_key
4. Datenbank initialisieren
npm run init-db
5. Standardbenutzer erstellen
npm run create-user
🚀 Server starten
Entwicklungsumgebung
npm run dev
Server läuft auf: http://localhost:3000
Produktionsumgebung
npm start
🔐 Erste Anmeldung
Web-Interface
- Öffnen Sie
http://localhost:3000 - Melden Sie sich an mit:
- Benutzername:
admin - Passwort:
admin123
- Benutzername:
API-Key generieren
curl -X POST http://localhost:3000/api/v1/web/generate-api-key \
-H "Content-Type: application/json" \
-d '{"description": "Mein erster API Key", "standorte": "Test"}'
🎮 Erste Schritte
1. Standort erstellen
curl -X POST http://localhost:3000/api/v1/private/create-location \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Test-Standort", "latitude": 48.1351, "longitude": 11.5820}'
2. Spieler erstellen
curl -X POST http://localhost:3000/api/v1/public/players \
-H "Content-Type: application/json" \
-d '{"firstname": "Max", "lastname": "Mustermann", "birthdate": "1990-01-01", "rfiduid": "AA:BB:CC:DD"}'
3. Zeit messen
curl -X POST http://localhost:3000/api/v1/private/create-time \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"player_id": "AA:BB:CC:DD", "location_id": "Test-Standort", "recorded_time": "01:23.456"}'
🧪 System testen
API-Test ausführen
# Test-Skript bearbeiten
nano test-api.js
# API_KEY in der Datei setzen
node test-api.js
Web-Interface testen
- Öffnen Sie
http://localhost:3000 - Melden Sie sich an
- Erstellen Sie einen Standort
- Fügen Sie einen Spieler hinzu
- Messen Sie eine Zeit
📊 Monitoring
Logs überwachen
# Server-Logs
tail -f logs/server.log
# Achievement-Logs
tail -f /var/log/ninjaserver_achievements.log
Datenbank-Status prüfen
-- Verbindung testen
SELECT NOW();
-- Tabellen anzeigen
\dt
-- Spieler zählen
SELECT COUNT(*) FROM players;
🔧 Konfiguration
Standort-Schwellenwerte
curl -X PUT http://localhost:3000/api/v1/private/locations/{id}/threshold \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"threshold_seconds": 120}'
Achievement-System aktivieren
# Tägliche Prüfung einrichten
node scripts/setup_cron.js setup
# Status prüfen
node scripts/setup_cron.js status
🚨 Häufige Probleme
Port bereits belegt
# Port 3000 freigeben
sudo lsof -ti:3000 | xargs kill -9
# Oder anderen Port verwenden
PORT=3001 npm start
Datenbank-Verbindung fehlgeschlagen
- PostgreSQL-Service prüfen:
sudo systemctl status postgresql - Datenbank-Credentials in
.envprüfen - Firewall-Einstellungen prüfen
API-Key funktioniert nicht
- API-Key neu generieren
- Authorization Header prüfen:
Bearer YOUR_API_KEY - Token-Ablaufzeit prüfen
📚 Nächste Schritte
Nach der erfolgreichen Installation:
- 📖 Lesen Sie das Benutzerhandbuch
- 🔧 Konsultieren Sie die Entwicklerhandbuch
- 📡 Schauen Sie in die API Referenz
- 🏆 Entdecken Sie das Achievement System
🆘 Hilfe
Bei Problemen:
- 📖 FAQ konsultieren
- 🔍 Troubleshooting durchgehen
- 📧 Support kontaktieren
Tipp: Verwenden Sie npm run dev für die Entwicklung - der Server startet automatisch neu bei Änderungen!