233 lines
7.5 KiB
Markdown
233 lines
7.5 KiB
Markdown
# Ripster
|
|
|
|
Ripster ist eine lokale Web-Anwendung für Disc-Ripping, Audiobook-Verarbeitung und Datei-Konvertierung. Das System kombiniert MakeMKV, HandBrake, FFmpeg, `cdparanoia`, `mkvmerge`, SQLite und eine React-Oberfläche zu einer durchgehenden Pipeline mit Queue, Historie, Downloads, Skript-Automation und Echtzeitstatus per WebSocket.
|
|
|
|
## Funktionsumfang
|
|
|
|
### Medien-Workflows
|
|
- Blu-ray-Ripping und -Encoding
|
|
- DVD-Ripping und -Encoding
|
|
- Audio-CD-Ripping und -Encoding
|
|
- Audiobook-Verarbeitung aus `.aax`
|
|
- Datei-Converter für Audio-, Video- und ISO-Dateien
|
|
|
|
### Video (Blu-ray / DVD)
|
|
- automatische Disc-Erkennung, Rescan einzelner Laufwerke und Live-Status im Ripper
|
|
- Metadaten-Suche über TMDB für Filme und Serien
|
|
- HandBrake-Review mit Playlist-/Titel-Auswahl, Audio-/Untertitel-Track-Auswahl und Encode-Vorschau
|
|
- MakeMKV-Rip mit profilspezifischen Modi und Zusatzargumenten
|
|
- HandBrake-Encoding mit User-Presets, offiziellen HandBrake-Presets und Extra-Args
|
|
- Serien-Workflows für DVD- und Blu-ray-Discs inkl. Episoden-Zuordnung und Batch-Encoding
|
|
- Multipart-Movie-Workflows über mehrere Discs inkl. Merge-Job via `mkvmerge`
|
|
- Re-Encode aus RAW, Review-Neustart, Encode-Neustart, Retry und Resume laufender/unterbrochener Jobs
|
|
|
|
### Audio-CD
|
|
- TOC-Analyse und Rip mit `cdparanoia`
|
|
- MusicBrainz-Suche und Übernahme von Album-/Track-Metadaten
|
|
- Track-Auswahl und Ausgabe als FLAC, WAV, MP3, Opus oder Ogg Vorbis
|
|
- RAW-Wiederverwendung und CD-Review-/Encode-Neustart aus vorhandenen Daten
|
|
|
|
### Audiobooks
|
|
- Upload und Verarbeitung von Audible-/AAX-Dateien
|
|
- Activation-Bytes-Cache für DRM-geschützte Titel
|
|
- Metadaten- und Kapitelanreicherung über Audnex plus lokale Probe-Daten
|
|
- Ausgabe als M4B, MP3 oder FLAC
|
|
- Einzeldatei oder kapitelweises Splitten
|
|
|
|
### Converter
|
|
- Dateibaum und Datei-Explorer für das Converter-RAW-Verzeichnis
|
|
- Upload, Ordner anlegen, Umbenennen, Verschieben und Löschen
|
|
- Jobs aus Dateiauswahl erzeugen, Dateien bestehenden Jobs zuweisen oder daraus entfernen
|
|
- Audio-/Video-Erkennung und automatische RAW-Scans per Polling
|
|
- TMDB-Metadatenzuordnung für passende Video-Jobs
|
|
|
|
### Automation, Betrieb und Verwaltung
|
|
- Queue mit normalen Jobs sowie zusätzlichen `script`-, `chain`- und `wait`-Einträgen
|
|
- Pre-/Post-Encode-Skripte und Skript-Ketten
|
|
- Cron-Jobs für Skripte und Ketten inkl. Validierung, Logs und manueller Auslösung
|
|
- Download-Queue für ZIP-Archive aus Historienjobs
|
|
- Historie mit Detailansicht, Re-Encode, Review-/Encode-Neustart, Retry und Löschfunktionen
|
|
- `/database`-Ansicht für Orphan-RAW-Ordner (Import oder Löschen vorhandener RAW-Daten)
|
|
- Hardware-Monitoring mit Live-Werten und Verlaufshistorie
|
|
- Pushover-Benachrichtigungen für zentrale Pipeline-Ereignisse
|
|
- MakeMKV-Betakey-Prüfung/-Übernahme und Cover-Art-Recovery
|
|
|
|
## Oberfläche
|
|
|
|
- `Ripper`: Disc-Erkennung, Pipeline-Status, Queue, Review-Dialoge und aktive Jobs
|
|
- `Converter`: Dateibaum, Uploads und Converter-Jobs
|
|
- `Audiobooks`: AAX-Uploads und Audiobook-Jobs
|
|
- `Settings`: Pfade, Tools, Templates, Queue, Monitoring, Notifications, Scripts, Chains, Presets
|
|
- `Historie`: abgeschlossene und fehlerhafte Jobs mit Folgeaktionen
|
|
- `Downloads`: vorbereitete ZIP-Downloads
|
|
- `Database`: Orphan-RAW-Verwaltung (im Expertenmodus)
|
|
- Zusatzansichten: `Hardware` und `TMDB Migration`
|
|
|
|
## Installation
|
|
|
|
Der korrekte Bootstrap läuft über `setup.sh`. `setup.sh` lädt das passende `install.sh` aus dem gewünschten Branch und startet es mit denselben Parametern.
|
|
|
|
Unterstützte Systeme laut Installer:
|
|
- Debian
|
|
- Ubuntu
|
|
- Linux Mint
|
|
- Pop!_OS
|
|
|
|
Standardinstallation:
|
|
|
|
```bash
|
|
curl -fsSL https://raw.githubusercontent.com/Mboehmlaender/ripster/main/setup.sh | bash -s -- --branch dev
|
|
```
|
|
|
|
Alternativ per Datei:
|
|
|
|
```bash
|
|
wget -qO setup.sh https://raw.githubusercontent.com/Mboehmlaender/ripster/main/setup.sh
|
|
bash setup.sh --branch dev
|
|
```
|
|
|
|
Hinweise:
|
|
- `setup.sh` nutzt bei Bedarf `sudo`; root-Rechte und Internetzugang sind erforderlich.
|
|
- Ohne `--branch` bietet `setup.sh` lokal eine Branch-Auswahl an. Bei `curl | bash` sollte `--branch` gesetzt werden.
|
|
- Der eigentliche Installer ist `install.sh`; `setup.sh` ist der empfohlene Einstiegspunkt.
|
|
|
|
Wichtige Standardparameter für den Installationslauf:
|
|
|
|
```bash
|
|
bash setup.sh --branch dev --dir /opt/ripster --user ripster --port 3001 --host 192.168.1.10
|
|
```
|
|
|
|
Verfügbare Optionen:
|
|
- `--branch <branch>`
|
|
- `--dir <pfad>`
|
|
- `--user <benutzer>`
|
|
- `--port <port>`
|
|
- `--host <hostname|ip>`
|
|
- `--no-makemkv`
|
|
- `--no-handbrake`
|
|
- `--no-nginx`
|
|
- `--no-system-deps`
|
|
- `--reinstall`
|
|
- `--help`
|
|
|
|
Was der Installer typischerweise einrichtet:
|
|
- Node.js 20
|
|
- `ffmpeg`, `ffprobe`, `mediainfo`, `mkvtoolnix`
|
|
- CD-Tools (`cdparanoia`, `flac`, `lame`, `opus-tools`, `vorbis-tools`)
|
|
- optional MakeMKV
|
|
- optional HandBrakeCLI
|
|
- optional nginx
|
|
- Repository-Checkout bzw. Update
|
|
- npm-Abhängigkeiten, Frontend-Build und `ripster-backend`-systemd-Service
|
|
|
|
## Update
|
|
|
|
Standard-Update einer bestehenden Installation:
|
|
|
|
```bash
|
|
sudo bash /opt/ripster/install.sh --reinstall --branch dev
|
|
```
|
|
|
|
Wenn die Installation mit abweichenden Kernparametern eingerichtet wurde, diese beim Update wieder mitgeben:
|
|
|
|
```bash
|
|
sudo bash /opt/ripster/install.sh --reinstall --branch dev --dir /opt/ripster --user ripster --port 3001 --host 192.168.1.10
|
|
```
|
|
|
|
Alternativ kann auch erneut über `setup.sh` gebootstrapped werden:
|
|
|
|
```bash
|
|
curl -fsSL https://raw.githubusercontent.com/Mboehmlaender/ripster/main/setup.sh | bash -s -- --branch dev --reinstall
|
|
```
|
|
|
|
`--reinstall` aktualisiert die Installation und behält die persistenten Daten der bestehenden Instanz bei.
|
|
|
|
## Entwicklung
|
|
|
|
Schnellstart für lokale Entwicklung:
|
|
|
|
```bash
|
|
./start.sh
|
|
```
|
|
|
|
`start.sh` prüft Node.js, installiert fehlende Abhängigkeiten und startet Backend und Frontend im Dev-Modus.
|
|
|
|
Wichtige npm-Skripte:
|
|
- `npm run dev`
|
|
- `npm run dev:backend`
|
|
- `npm run dev:frontend`
|
|
- `npm run build:frontend`
|
|
- `npm run start`
|
|
|
|
## Konfiguration
|
|
|
|
Die meisten Einstellungen werden in der Weboberfläche unter `Settings` gepflegt und in SQLite gespeichert. Dazu gehören insbesondere:
|
|
- Pfade und Output-Templates für Blu-ray, DVD, Serie, CD, Audiobook, Converter, Downloads und Logs
|
|
- Tool-Kommandos für MakeMKV, HandBrake, MediaInfo, FFmpeg, FFprobe, `cdparanoia` und `mkvmerge`
|
|
- Laufwerksmodus, Disc-Erkennung und Queue-/Parallelisierungsregeln
|
|
- Hardware-Monitoring, Logging, Expert Mode und Cover-Art-Recovery
|
|
- TMDB-Zugangsdaten, Pushover, Skripte, Skript-Ketten, User-Presets und Preset-Defaults
|
|
|
|
Zusätzliche Bootstrap-/Override-Variablen:
|
|
|
|
Backend:
|
|
- `PORT`
|
|
- `DB_PATH`
|
|
- `LOG_DIR`
|
|
- `LOG_LEVEL`
|
|
- `CORS_ORIGIN`
|
|
- `DEFAULT_TEMP_DIR`
|
|
- `DEFAULT_RAW_DIR`
|
|
- `DEFAULT_MOVIE_DIR`
|
|
- `DEFAULT_SERIES_DIR`
|
|
- `DEFAULT_CD_DIR`
|
|
- `DEFAULT_AUDIOBOOK_RAW_DIR`
|
|
- `DEFAULT_AUDIOBOOK_DIR`
|
|
- `DEFAULT_DOWNLOAD_DIR`
|
|
- `DEFAULT_CONVERTER_RAW_DIR`
|
|
- `DEFAULT_CONVERTER_MOVIE_DIR`
|
|
- `DEFAULT_CONVERTER_AUDIO_DIR`
|
|
|
|
Frontend:
|
|
- `VITE_API_BASE`
|
|
- `VITE_WS_URL`
|
|
|
|
## Daten, Logs und API
|
|
|
|
- Standard-DB: `backend/data/ripster.db`
|
|
- Standard-Logs: `backend/logs`
|
|
- Standard-Outputs liegen relativ zum Datenverzeichnis, sofern in den Settings nichts anderes gesetzt ist.
|
|
- Das Schema wird beim Start geprüft und fehlende DB-Elemente werden migriert.
|
|
|
|
REST-Gruppen:
|
|
- `/api/health`
|
|
- `/api/pipeline/*`
|
|
- `/api/converter/*`
|
|
- `/api/history/*`
|
|
- `/api/downloads/*`
|
|
- `/api/settings/*`
|
|
- `/api/crons/*`
|
|
- `/api/runtime/*`
|
|
|
|
Realtime:
|
|
- WebSocket unter `/ws`
|
|
|
|
## Projektstruktur
|
|
|
|
```text
|
|
ripster/
|
|
backend/
|
|
frontend/
|
|
db/
|
|
docs/
|
|
install.sh
|
|
setup.sh
|
|
start.sh
|
|
```
|
|
|
|
## Dokumentation
|
|
|
|
Ausführlichere Dokumentation liegt in `docs/` und veröffentlicht unter:
|
|
|
|
https://mboehmlaender.github.io/ripster/
|