Initial commit mit MkDocs-Dokumentation

This commit is contained in:
2026-03-04 14:18:33 +00:00
parent 6115090da1
commit 31d3e36597
97 changed files with 27518 additions and 1 deletions

View File

@@ -0,0 +1,118 @@
# Konfiguration
Alle Einstellungen werden über die Web-Oberfläche unter **Einstellungen** verwaltet und in der SQLite-Datenbank gespeichert.
---
## Pflichteinstellungen
Diese Einstellungen müssen vor dem ersten Rip konfiguriert werden:
### Pfade
| Einstellung | Beschreibung | Beispiel |
|------------|-------------|---------|
| `raw_dir` | Verzeichnis für rohe MKV-Dateien | `/mnt/nas/raw` |
| `movie_dir` | Ausgabeverzeichnis für kodierte Filme | `/mnt/nas/movies` |
| `log_dir` | Verzeichnis für Log-Dateien | `/var/log/ripster` |
!!! warning "Berechtigungen"
Der Ripster-Prozess benötigt **Schreibrechte** auf alle konfigurierten Verzeichnisse.
```bash
# Verzeichnisse erstellen und Berechtigungen setzen
sudo mkdir -p /mnt/nas/{raw,movies}
sudo chown $USER:$USER /mnt/nas/{raw,movies}
```
### OMDb API
| Einstellung | Beschreibung |
|------------|-------------|
| `omdb_api_key` | API-Key von omdbapi.com |
| `omdb_default_type` | Standard-Suchtyp: `movie` oder `series` |
---
## Tool-Konfiguration
| Einstellung | Standard | Beschreibung |
|------------|---------|-------------|
| `makemkv_command` | `makemkvcon` | Pfad oder Befehl für MakeMKV |
| `handbrake_command` | `HandBrakeCLI` | Pfad oder Befehl für HandBrake |
| `mediainfo_command` | `mediainfo` | Pfad oder Befehl für MediaInfo |
!!! tip "Absolute Pfade"
Falls die Tools nicht im `PATH` sind, verwende absolute Pfade:
```
/usr/local/bin/HandBrakeCLI
```
---
## Encoding-Konfiguration
| Einstellung | Standard | Beschreibung |
|------------|---------|-------------|
| `handbrake_preset` | `H.265 MKV 1080p30` | HandBrake-Preset-Name |
| `handbrake_extra_args` | _(leer)_ | Zusätzliche HandBrake-Argumente |
| `output_extension` | `mkv` | Dateiendung der Ausgabedatei |
| `filename_template` | `{title} ({year})` | Template für Dateinamen |
### Dateiname-Template
Das Template unterstützt folgende Platzhalter:
| Platzhalter | Beschreibung | Beispiel |
|------------|-------------|---------|
| `{title}` | Filmtitel | `Inception` |
| `{year}` | Erscheinungsjahr | `2010` |
| `{imdb_id}` | IMDb-ID | `tt1375666` |
| `{type}` | `movie` oder `series` | `movie` |
**Beispiel-Template:**
```
{title} ({year})
→ Inception (2010).mkv
```
---
## Laufwerk-Konfiguration
| Einstellung | Standard | Beschreibung |
|------------|---------|-------------|
| `drive_mode` | `auto` | `auto` (automatisch erkennen) oder `explicit` (festes Gerät) |
| `drive_device` | `/dev/sr0` | Geräte-Pfad (nur bei `explicit`) |
| `disc_poll_interval_ms` | `5000` | Polling-Intervall in Millisekunden |
---
## MakeMKV-Konfiguration
| Einstellung | Standard | Beschreibung |
|------------|---------|-------------|
| `makemkv_min_length_minutes` | `15` | Mindestlänge für Titel in Minuten |
| `makemkv_backup_mode` | `false` | Backup-Modus statt MKV-Modus |
!!! info "Backup-Modus"
Im Backup-Modus erstellt MakeMKV eine vollständige Kopie der Disc (inkl. Menüs). Der Standardmodus erstellt direkt MKV-Dateien.
---
## Benachrichtigungen (PushOver)
| Einstellung | Beschreibung |
|------------|-------------|
| `pushover_user_key` | Dein PushOver User-Key |
| `pushover_api_token` | API-Token deiner PushOver-App |
Nach der Eingabe kann die Verbindung mit dem **Test-Button** geprüft werden.
---
## Vollständige Einstellungsreferenz
Eine vollständige Liste aller Einstellungen mit Typen, Validierung und Standardwerten findest du unter:
[:octicons-arrow-right-24: Einstellungsreferenz](../configuration/settings-reference.md)

View File

@@ -0,0 +1,41 @@
# Erste Schritte
Dieser Abschnitt führt dich durch die Installation und Einrichtung von Ripster.
## Überblick
<div class="grid cards" markdown>
- :material-list-check: **Voraussetzungen**
---
Systemanforderungen und externe Tools, die vor der Installation benötigt werden.
[:octicons-arrow-right-24: Voraussetzungen prüfen](prerequisites.md)
- :material-download: **Installation**
---
Schritt-für-Schritt-Anleitung zur Installation von Ripster.
[:octicons-arrow-right-24: Installation starten](installation.md)
- :material-tune: **Konfiguration**
---
Einrichten von Pfaden, API-Keys und Encoding-Presets.
[:octicons-arrow-right-24: Konfigurieren](configuration.md)
- :material-rocket-launch: **Schnellstart**
---
Rippe deinen ersten Film in wenigen Minuten.
[:octicons-arrow-right-24: Loslegen](quickstart.md)
</div>

View File

@@ -0,0 +1,140 @@
# Installation
---
## Repository klonen
```bash
git clone https://github.com/YOUR_GITHUB_USERNAME/ripster.git
cd ripster
```
---
## Automatischer Start
Ripster enthält ein `start.sh`-Skript, das alle Abhängigkeiten installiert und Backend + Frontend gleichzeitig startet:
```bash
./start.sh
```
Das Skript führt automatisch folgende Schritte durch:
1. **Node.js-Versionscheck** prüft ob >= 20.19.0 verfügbar ist (mit nvm/npx-Fallback)
2. **Abhängigkeiten installieren** `npm install` für Root, Backend und Frontend
3. **Dienste starten** Backend und Frontend werden parallel gestartet
!!! success "Erfolgreich gestartet"
- Backend läuft auf `http://localhost:3001`
- Frontend läuft auf `http://localhost:5173`
---
## Manuelle Installation
Falls du mehr Kontrolle benötigst:
```bash
# Root-Abhängigkeiten
npm install
# Backend-Abhängigkeiten
cd backend && npm install && cd ..
# Frontend-Abhängigkeiten
cd frontend && npm install && cd ..
# Backend starten (Terminal 1)
cd backend && npm run dev
# Frontend starten (Terminal 2)
cd frontend && npm run dev
```
---
## Umgebungsvariablen konfigurieren
### Backend
```bash
cp backend/.env.example backend/.env
```
Bearbeite `backend/.env`:
```env
PORT=3001
DB_PATH=./data/ripster.db
CORS_ORIGIN=http://localhost:5173
LOG_DIR=./logs
LOG_LEVEL=info
```
### Frontend
```bash
cp frontend/.env.example frontend/.env
```
Bearbeite `frontend/.env`:
```env
VITE_API_BASE=http://localhost:3001
VITE_WS_URL=ws://localhost:3001
```
!!! tip "Alle Umgebungsvariablen"
Eine vollständige Übersicht aller Umgebungsvariablen findest du unter [Umgebungsvariablen](../configuration/environment.md).
---
## Datenbank initialisieren
Die SQLite-Datenbank wird **automatisch** beim ersten Start erstellt und mit dem Schema aus `db/schema.sql` initialisiert. Es sind keine manuellen Datenbankschritte erforderlich.
```
backend/data/
└── ripster.db ← Wird automatisch angelegt
```
---
## Stoppen
```bash
./kill.sh
```
Das Skript beendet Backend- und Frontend-Prozesse graceful.
---
## Verzeichnisstruktur nach Installation
```
ripster/
├── backend/
│ ├── data/ ← SQLite-Datenbank (nach erstem Start)
│ ├── logs/ ← Log-Dateien
│ ├── node_modules/ ← Backend-Abhängigkeiten
│ └── .env ← Backend-Konfiguration
├── frontend/
│ ├── node_modules/ ← Frontend-Abhängigkeiten
│ ├── dist/ ← Production-Build (nach npm run build)
│ └── .env ← Frontend-Konfiguration
└── node_modules/ ← Root-Abhängigkeiten (concurrently etc.)
```
---
## Nächste Schritte
Nach erfolgreicher Installation:
1. Öffne [http://localhost:5173](http://localhost:5173)
2. Navigiere zu **Einstellungen**
3. Konfiguriere Pfade, API-Keys und Encoding-Presets
[:octicons-arrow-right-24: Zur Konfiguration](configuration.md)

View File

@@ -0,0 +1,158 @@
# Voraussetzungen
Bevor du Ripster installierst, stelle sicher, dass folgende Software auf deinem System verfügbar ist.
---
## System-Anforderungen
| Anforderung | Mindestversion | Empfohlen |
|------------|----------------|-----------|
| **Betriebssystem** | Linux / macOS | Ubuntu 22.04+ |
| **Node.js** | 20.19.0 | 20.x LTS |
| **RAM** | 4 GB | 8 GB+ |
| **Festplatte** | 50 GB frei | 500 GB+ (für Roh-MKVs) |
---
## Node.js
Ripster benötigt **Node.js >= 20.19.0**.
=== "nvm (empfohlen)"
```bash
# nvm installieren
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# Node.js 20 installieren
nvm install 20
nvm use 20
# Version prüfen
node --version # v20.x.x
```
=== "Ubuntu/Debian"
```bash
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
node --version # v20.x.x
```
=== "macOS (Homebrew)"
```bash
brew install node@20
node --version # v20.x.x
```
---
## Externe Tools
### MakeMKV
!!! warning "Lizenz erforderlich"
MakeMKV ist für den persönlichen Gebrauch kostenlos (Beta-Lizenz), benötigt aber eine gültige Lizenz.
```bash
# Ubuntu/Debian - PPA verwenden
sudo add-apt-repository ppa:heyarje/makemkv-beta
sudo apt-get update
sudo apt-get install makemkv-bin makemkv-oss
# Installierte Version prüfen
makemkvcon --version
```
[:octicons-link-external-24: MakeMKV Download](https://www.makemkv.com/download/){ .md-button }
### HandBrake CLI
```bash
# Ubuntu/Debian
sudo add-apt-repository ppa:stebbins/handbrake-releases
sudo apt-get update
sudo apt-get install handbrake-cli
# Version prüfen
HandBrakeCLI --version
# macOS
brew install handbrake
```
[:octicons-link-external-24: HandBrake Download](https://handbrake.fr/downloads2.php){ .md-button }
### MediaInfo
```bash
# Ubuntu/Debian
sudo apt-get install mediainfo
# macOS
brew install mediainfo
# Version prüfen
mediainfo --Version
```
---
## Disc-Laufwerk
Ripster benötigt ein physisches **DVD- oder Blu-ray-Laufwerk**.
!!! info "Blu-ray unter Linux"
Für Blu-ray-Ripping unter Linux wird zusätzlich `libaacs` benötigt. MakeMKV bringt jedoch eine eigene Entschlüsselung mit, daher ist dies in den meisten Fällen nicht erforderlich.
```bash
# Laufwerk prüfen
ls /dev/sr*
# oder
lsblk | grep rom
```
---
## OMDb API-Key
Ripster verwendet die [OMDb API](https://www.omdbapi.com/) für Filmmetadaten.
1. Registriere dich kostenlos auf [omdbapi.com](https://www.omdbapi.com/apikey.aspx)
2. Bestätige deine E-Mail-Adresse
3. Notiere deinen API-Key du gibst ihn später in den Einstellungen ein
---
## Optionale Voraussetzungen
### PushOver (Benachrichtigungen)
Für mobile Push-Benachrichtigungen bei Fertigstellung oder Fehlern:
- App kaufen auf [pushover.net](https://pushover.net) (~5 USD einmalig)
- **User Key** und **API Token** notieren
### SSH-Zugang (Deployment)
Für Remote-Deployment via `deploy-ripster.sh`:
```bash
# sshpass installieren
sudo apt-get install sshpass
```
---
## Checkliste
- [ ] Node.js >= 20.19.0 installiert (`node --version`)
- [ ] `makemkvcon` installiert (`makemkvcon --version`)
- [ ] `HandBrakeCLI` installiert (`HandBrakeCLI --version`)
- [ ] `mediainfo` installiert (`mediainfo --Version`)
- [ ] DVD/Blu-ray Laufwerk vorhanden (`ls /dev/sr*`)
- [ ] OMDb API-Key beschafft

View File

@@ -0,0 +1,144 @@
# Schnellstart
Nach der [Installation](installation.md) und [Konfiguration](configuration.md) kannst du sofort mit dem ersten Rip beginnen.
---
## 1. Ripster starten
```bash
cd ripster
./start.sh
```
Öffne [http://localhost:5173](http://localhost:5173) im Browser.
---
## 2. Dashboard
Das Dashboard zeigt den aktuellen Pipeline-Status:
```
Status: IDLE Bereit
Warte auf Disc...
```
---
## 3. Disc einlegen
Lege eine DVD oder Blu-ray in das Laufwerk ein. Ripster erkennt die Disc automatisch (Polling-Intervall konfigurierbar, Standard: 5 Sekunden) und wechselt in den Status **ANALYZING**.
!!! tip "Manuelle Analyse"
Falls die Disc nicht automatisch erkannt wird, kann über die API eine manuelle Analyse ausgelöst werden:
```bash
curl -X POST http://localhost:3001/api/pipeline/analyze
```
---
## 4. Analyse abwarten
MakeMKV analysiert die Disc-Struktur. Dieser Vorgang dauert je nach Disc **30 Sekunden bis 5 Minuten**.
Der Fortschritt wird live im Dashboard angezeigt.
---
## 5. Metadaten auswählen
Nach der Analyse öffnet sich der **Metadaten-Dialog**:
1. **Titel suchen**: Gib den Filmtitel in die Suchleiste ein
2. **Ergebnis auswählen**: Wähle den passenden Film aus der OMDb-Liste
3. **Playlist wählen** *(nur Blu-ray)*: Bei Blu-rays mit mehreren Playlists zeigt Ripster eine Analyse der wahrscheinlich korrekten Playlist an
4. **Bestätigen**: Klicke auf "Bestätigen"
!!! info "Playlist-Obfuskierung"
Einige Blu-rays enthalten absichtlich viele Fake-Playlists. Ripster analysiert diese automatisch und schlägt die wahrscheinlich korrekte Playlist vor.
---
## 6. Ripping starten
Nach der Metadaten-Auswahl wechselt der Status zu **READY_TO_START**.
Klicke auf **"Starten"** MakeMKV beginnt mit dem Ripping.
**Typische Dauer:**
- DVD: 2040 Minuten
- Blu-ray: 45120 Minuten
---
## 7. Encode-Review
Nach dem Ripping analysiert MediaInfo die Track-Struktur. Im **Encode-Review** kannst du:
- **Audio-Tracks** auswählen (z. B. Deutsch + Englisch)
- **Untertitel-Tracks** auswählen
- Überflüssige Tracks deaktivieren
Klicke auf **"Encodierung bestätigen"**.
---
## 8. Encoding
HandBrake encodiert die Datei mit dem konfigurierten Preset.
**Fortschrittsanzeige:**
- Aktueller Prozentsatz
- Geschätzte Restzeit (ETA)
- Encoding-Geschwindigkeit (FPS)
---
## 9. Fertig!
Status wechselt zu **FINISHED**. Die encodierte Datei liegt im konfigurierten `movie_dir`.
```
/mnt/nas/movies/
└── Inception (2010).mkv ← Fertige Datei
```
!!! success "PushOver-Benachrichtigung"
Falls PushOver konfiguriert ist, erhältst du eine Push-Benachrichtigung auf dein Mobilgerät.
---
## Workflow-Zusammenfassung
```
Disc einlegen
ANALYZING (MakeMKV analysiert)
METADATA_SELECTION (Titel & Playlist wählen)
READY_TO_START → [Starten]
RIPPING (MakeMKV rippt)
MEDIAINFO_CHECK (Track-Analyse)
READY_TO_ENCODE → [Bestätigen]
ENCODING (HandBrake encodiert)
FINISHED ✓
```
---
## Was tun bei Fehlern?
Falls ein Job in den Status **ERROR** wechselt:
1. Klicke auf **"Details"** im Dashboard
2. Prüfe die Log-Ausgabe
3. Klicke auf **"Retry"** um den Job erneut zu versuchen
Logs findest du auch in der [History-Seite](http://localhost:5173/history).