Entwicklungsumgebung¶
Voraussetzungen¶
- Node.js >= 20.19.0
- Alle externen Tools installiert
Schnellstart¶
Das Skript startet automatisch: - Backend auf Port 3001 (mit Nodemon für Hot-Reload) - Frontend auf Port 5173 (mit Vite HMR)
Manuelle Entwicklungsumgebung¶
Terminal 1 – Backend¶
Backend läuft auf http://localhost:3001 mit Nodemon – Neustart bei Dateiänderungen.
Terminal 2 – Frontend¶
Frontend läuft auf http://localhost:5173 mit Vite HMR – sofortige Browser-Updates.
Vite-Proxy¶
Im Entwicklungsmodus proxied Vite alle API- und WebSocket-Anfragen zum Backend:
// frontend/vite.config.js
server: {
proxy: {
'/api': {
target: 'http://localhost:3001',
changeOrigin: true
},
'/ws': {
target: 'ws://localhost:3001',
ws: true
}
}
}
Das bedeutet: Im Browser macht das Frontend Anfragen an localhost:5173/api/... – Vite leitet diese an localhost:3001/api/... weiter.
Remote-Entwicklung¶
Falls Ripster auf einem entfernten Server entwickelt wird (z.B. Homeserver), muss die Vite-Konfiguration angepasst werden:
# frontend/.env.local
VITE_API_BASE=http://192.168.1.100:3001
VITE_WS_URL=ws://192.168.1.100:3001
VITE_HMR_HOST=192.168.1.100
VITE_HMR_PORT=5173
Log-Level für Entwicklung¶
Im Debug-Modus werden alle Ausgaben der externen Tools (MakeMKV, HandBrake) vollständig geloggt.
Stoppen¶
Linting & Type-Checking¶
# Frontend (ESLint)
cd frontend && npm run lint
# Backend hat keine separaten Lint-Scripts,
# nutze direkt eslint falls konfiguriert
Deployment-Script¶
Das deploy-ripster.sh-Script überträgt Code auf einen Remote-Server per SSH:
Was das Script tut: 1. rsync synchronisiert den Code (Backend-Quellcode ohne data/) 2. Die Datenbank (backend/data/) wird nicht überschrieben 3. Verbindung via SSH (konfigurierbar im Script)
Anpassung des Scripts: