Files
ripster/README.md
T
michael c6d884dc3f
Deploy Docs to GitHub Pages / Build Documentation (push) Has been cancelled
Deploy Docs to GitHub Pages / Deploy to GitHub Pages (push) Has been cancelled
1.0.0 1.0.0 final
2026-06-12 09:48:45 +02:00

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/