Files
Ninjaserver/wiki/Schnellstart.md
2025-09-23 14:13:24 +02:00

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

  1. Öffnen Sie http://localhost:3000
  2. Melden Sie sich an mit:
    • Benutzername: admin
    • Passwort: admin123

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

  1. Öffnen Sie http://localhost:3000
  2. Melden Sie sich an
  3. Erstellen Sie einen Standort
  4. Fügen Sie einen Spieler hinzu
  5. 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

  1. PostgreSQL-Service prüfen: sudo systemctl status postgresql
  2. Datenbank-Credentials in .env prüfen
  3. Firewall-Einstellungen prüfen

API-Key funktioniert nicht

  1. API-Key neu generieren
  2. Authorization Header prüfen: Bearer YOUR_API_KEY
  3. Token-Ablaufzeit prüfen

📚 Nächste Schritte

Nach der erfolgreichen Installation:

  1. 📖 Lesen Sie das Benutzerhandbuch
  2. 🔧 Konsultieren Sie die Entwicklerhandbuch
  3. 📡 Schauen Sie in die API Referenz
  4. 🏆 Entdecken Sie das Achievement System

🆘 Hilfe

Bei Problemen:


Tipp: Verwenden Sie npm run dev für die Entwicklung - der Server startet automatisch neu bei Änderungen!