Add Wiki Schnellstart page
This commit is contained in:
220
wiki/Schnellstart.md
Normal file
220
wiki/Schnellstart.md
Normal file
@@ -0,0 +1,220 @@
|
||||
# 🚀 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!
|
||||
Reference in New Issue
Block a user