221 lines
4.5 KiB
Markdown
221 lines
4.5 KiB
Markdown
# 🚀 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
|
|
```bash
|
|
git clone <repository-url>
|
|
cd ninjaserver
|
|
```
|
|
|
|
### 2. Abhängigkeiten installieren
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
### 3. Umgebungsvariablen konfigurieren
|
|
```bash
|
|
cp .env.example .env
|
|
```
|
|
|
|
Bearbeiten Sie die `.env`-Datei:
|
|
```env
|
|
# 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
|
|
```bash
|
|
npm run init-db
|
|
```
|
|
|
|
### 5. Standardbenutzer erstellen
|
|
```bash
|
|
npm run create-user
|
|
```
|
|
|
|
## 🚀 Server starten
|
|
|
|
### Entwicklungsumgebung
|
|
```bash
|
|
npm run dev
|
|
```
|
|
Server läuft auf: `http://localhost:3000`
|
|
|
|
### Produktionsumgebung
|
|
```bash
|
|
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
|
|
```bash
|
|
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
|
|
```bash
|
|
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
|
|
```bash
|
|
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
|
|
```bash
|
|
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
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# Server-Logs
|
|
tail -f logs/server.log
|
|
|
|
# Achievement-Logs
|
|
tail -f /var/log/ninjaserver_achievements.log
|
|
```
|
|
|
|
### Datenbank-Status prüfen
|
|
```sql
|
|
-- Verbindung testen
|
|
SELECT NOW();
|
|
|
|
-- Tabellen anzeigen
|
|
\dt
|
|
|
|
-- Spieler zählen
|
|
SELECT COUNT(*) FROM players;
|
|
```
|
|
|
|
## 🔧 Konfiguration
|
|
|
|
### Standort-Schwellenwerte
|
|
```bash
|
|
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
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# 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](Benutzerhandbuch)
|
|
2. 🔧 Konsultieren Sie die [Entwicklerhandbuch](Entwicklerhandbuch)
|
|
3. 📡 Schauen Sie in die [API Referenz](API-Referenz)
|
|
4. 🏆 Entdecken Sie das [Achievement System](Achievement-System)
|
|
|
|
## 🆘 Hilfe
|
|
|
|
Bei Problemen:
|
|
- 📖 [FAQ](FAQ) konsultieren
|
|
- 🔍 [Troubleshooting](Troubleshooting) durchgehen
|
|
- 📧 Support kontaktieren
|
|
|
|
---
|
|
|
|
**Tipp:** Verwenden Sie `npm run dev` für die Entwicklung - der Server startet automatisch neu bei Änderungen!
|