RackDiff
Alle Guides

Whisper selbst hosten: faster-whisper mit Whishper, Docker und Caddy auf dem VPS

Whishper mit Docker Compose einrichten, per Caddy mit HTTPS und Passwort absichern und Dateien per CLI mit faster-whisper transkribieren; Angaben laut Projekt-Doku.

Dirk Hesse
21. Dezember 2025
12 Min. Lesezeit

Whisper lässt sich auf einem eigenen VPS betreiben. faster-whisper ist laut Projekt bis zu 4-mal schneller als OpenAIs Whisper, bei gleicher Genauigkeit und mit weniger Speicher (laut faster-whisper-README, Stand: 08.11.2026). Abgerechnet wird der Server-Tarif, nicht die Menge an Audio.

Danach hast du eine Web-Oberfläche für Uploads, den Export als TXT, JSON, VTT oder SRT und eine CLI für Stapelverarbeitung. Aufnahmen und Transkripte liegen auf deinem Server und gehen nicht an einen Transkriptionsdienst.

Bedarf für Whisper schätzen

Der Whisper-Rechner schätzt aus Modell und Audio-Menge den Bedarf und zeigt passende Server.

Zum Whisper VPS-Rechner

Was ist Whisper / faster-whisper?

Whisper ist OpenAIs Modell für mehrsprachige Spracherkennung, Übersetzung gesprochener Sprache und Erkennung der gesprochenen Sprache; Code und Modellgewichte stehen unter der MIT-Lizenz (laut OpenAI-Whisper-README, Stand: 08.11.2026).

faster-whisper ist eine Neuimplementierung von OpenAIs Whisper mit CTranslate2, einer Inferenz-Engine für Transformer-Modelle (laut faster-whisper-README, Stand: 08.11.2026).

Projekt-Benchmark: Small-Modell, 13 Minuten Audio, Intel Core i7-12700K mit 8 Threads, Beam Size 5 (laut faster-whisper-README, Stand: 08.11.2026):

ImplementierungPräzisionDauerSpeicher
openai/whisperfp326 Min. 58 s2335 MB
faster-whisperfp322 Min. 37 s2257 MB
faster-whisperint81 Min. 42 s1477 MB

Das sind Werte des Projekts, keine Messung von RackDiff; auf einem VPS hängen sie von CPU und Threads ab.

Warum Whisper selbst hosten?

  • Kosten: Abgerechnet wird der Server-Tarif, nicht die Audiomenge; aktuelle Preise inkl. USt im VPS-Vergleich.
  • Datenschutz: Aufnahmen und Transkripte liegen auf deinem Server statt bei einem Transkriptionsdienst. Beziehen sie sich auf Personen, sind es personenbezogene Daten (Art. 4 Nummer 1 DSGVO). Verarbeitest du sie nicht ausschließlich privat, brauchst du mit dem Hoster einen Vertrag zur Auftragsverarbeitung (Art. 28 Abs. 3 DSGVO), und die Absicherung des Servers liegt bei dir (Art. 32 Abs. 1 DSGVO) (laut DSGVO, Stand: 08.11.2026).
  • Auslastung: Wie viel Audio du verarbeitest, begrenzen CPU und RAM deines Servers.
  • Modelle: Whishper lädt die Modelle beim ersten Start herunter (laut Whishper-Doku, Stand: 08.11.2026), faster-whisper bezieht sie vom Hugging Face Hub (laut faster-whisper-README, Stand: 08.11.2026); danach läuft die Transkription auf deinem Server.

Voraussetzungen

Bevor wir starten, brauchst du:

Whisper-Modelle

ModellParameterVRAM (GPU, Original-Whisper)relative Geschwindigkeit
tiny39 M~1 GB~10x
base74 M~1 GB~7x
small244 M~2 GB~4x
medium769 M~5 GB~2x
large1550 M~10 GB1x
turbo809 M~6 GB~8x

Die Geschwindigkeit hat OpenAI auf einer A100 mit englischer Sprache gemessen, turbo ist eine optimierte Fassung von large-v3 (laut OpenAI-Whisper-README, Stand: 08.11.2026). RAM-Werte für die CPU nennt OpenAI nicht; der faster-whisper-Benchmark nennt für Small mit int8 1477 MB (laut faster-whisper-README, Stand: 08.11.2026). RackDiff listet derzeit keine GPU-Server.

Für Deutsch kommen die mehrsprachigen Modelle infrage, nicht die .en-Varianten; größere Modelle brauchen mehr Speicher und Zeit, und large-v3 zeigt in vielen Sprachen verbesserte Ergebnisse (laut Whishper-Doku, Stand: 08.11.2026).

Server für Whisper vergleichen

Aktuelle VPS-Tarife mit RAM, CPU und Preisen inkl. USt.

Zum VPS-Vergleich

Schritt 1: Server vorbereiten

Verbinde dich per SSH und aktualisiere das System:

ssh root@deine-server-ip
apt update && apt upgrade -y

Installiere Docker Engine mit dem Compose-Plugin über das apt-Repository von Docker, wie in der Docker-Doku beschrieben; das Convenience-Skript ist laut Docker nicht für Produktivsysteme gedacht (laut Docker-Doku, Stand: 08.11.2026). Der letzte Befehl lautet apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin.


Schritt 2: Whishper als Web-Oberfläche einrichten

Als Web-Oberfläche nutzt diese Anleitung Whishper: Upload oder Link, Transkription mit faster-whisper, Übersetzung mit LibreTranslate, Untertitel-Editor, Export als TXT, JSON, VTT oder SRT. Der Autor arbeitet an einer Neufassung; der aktuelle Stand bekommt laut README keine neuen Releases oder Updates mehr (laut Whishper-README, Stand: 08.11.2026).

2.1 Dateien laden

Lade die Dateien des Projekts herunter (laut Whishper-Doku, Stand: 08.11.2026):

mkdir -p /opt/whishper && cd /opt/whishper
curl -o docker-compose.yml https://raw.githubusercontent.com/pluja/whishper/main/docker-compose.yml
curl -o .env https://raw.githubusercontent.com/pluja/whishper/main/example.env
curl -o nginx.conf https://raw.githubusercontent.com/pluja/whishper/main/nginx.conf
mkdir -p ./whishper_data/libretranslate/{data,cache}
chown -R 1032:1032 whishper_data/libretranslate

2.2 Konfigurieren

Setze in .env vor dem ersten Start (laut Whishper-Doku, Stand: 08.11.2026):

WHISPER_MODELS=tiny,small
WHISHPER_HOST=whisper.deine-domain.de
DB_USER=whishper
DB_PASS=<eigenes-passwort>
LT_LOAD_ONLY=de,en

WHISPER_MODELS legt die Modelle fest, WHISHPER_HOST ist die Adresse im Browser ohne Protokoll, LT_LOAD_ONLY die Sprachen für LibreTranslate.

Ersetze in docker-compose.yml beim Dienst whishper die Portzeile - 8082:80 vor dem ersten Start, damit nur der Reverse Proxy den Port erreicht. Veröffentlichte Docker-Ports umgehen ufw (laut Docker-Doku, Stand: 08.11.2026), mit 127.0.0.1 ist der Port nur vom Server selbst erreichbar (laut Docker-Doku, Stand: 08.11.2026):

    ports:
      - "127.0.0.1:8082:80"

2.3 Starten

docker compose up -d
docker compose logs -f

Der erste Start lädt Transkriptions- und Übersetzungsmodelle und kann eine Weile dauern; den Fortschritt zeigt docker compose logs -f (laut Whishper-Doku, Stand: 08.11.2026). Das version: "3.9" der Upstream-Datei löst nur eine Warnung aus (laut Docker-Doku, Stand: 08.11.2026).


Schritt 3: Reverse Proxy mit HTTPS und Passwortschutz

Für den Zugriff per HTTPS setzt du Caddy als Reverse Proxy davor. Die Whishper-Doku beschreibt keine Benutzeranmeldung (laut Whishper-Doku, Stand: 08.11.2026); deshalb schützt Caddy die Seite mit Benutzername und Passwort.

Caddy installierst du als root über das Paket-Repository des Projekts (laut Caddy-Doku, Stand: 08.11.2026):

apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list
chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg
chmod o+r /etc/apt/sources.list.d/caddy-stable.list
apt update
apt install caddy

Erzeuge den Passwort-Hash mit caddy hash-password. Die Direktive heißt seit Caddy v2.8.0 basic_auth, vorher basicauth (laut Caddy-Doku, Stand: 08.11.2026). reverse_proxy leitet an den lokal gebundenen Port weiter (laut Caddy-Doku, Stand: 08.11.2026).

/etc/caddy/Caddyfile:

whisper.deine-domain.de {
    basic_auth {
        dein-name <hash-aus-caddy-hash-password>
    }
    reverse_proxy 127.0.0.1:8082
}
systemctl reload caddy

Caddy holt das Zertifikat automatisch bei Let's Encrypt oder ZeroSSL, wenn der A/AAAA-Eintrag auf den Server zeigt und die Ports 80 und 443 von außen erreichbar sind (laut Caddy-Doku, Stand: 08.11.2026).

Aufruf prüfen

Öffne https://whisper.deine-domain.de, melde dich mit dem Caddy-Passwort an. Dann:

  1. Datei hochladen oder Link angeben
  2. Sprache und Modell wählen
  3. Transkription starten
  4. Export als TXT, JSON, VTT oder SRT (laut Whishper-README, Stand: 08.11.2026)

Hinweis: Die Dauer hängt von Modell, CPU und Threads ab; Werte des Projekts stehen im Abschnitt „Was ist Whisper / faster-whisper?“.


Alternative: CLI für Automatisierung

Für Stapelverarbeitung ohne Web-Oberfläche nutzt du einen Kommandozeilen-Client.

whisper-ctranslate2 in einer Python-Umgebung

whisper-ctranslate2 ist ein mit OpenAIs Client kompatibler Kommandozeilen-Client auf Basis von CTranslate2 und kann Sprecher mit pyannote.audio unterscheiden; dafür brauchst du ein Hugging-Face-Zugangstoken (laut whisper-ctranslate2-README, Stand: 08.11.2026).

Unter Ubuntu 24.04 kommt das Modul venv mit dem Paket python3-venv (laut Ubuntu-Paketarchiv, Stand: 08.11.2026); python3 -m venv legt eine eigene Python-Umgebung an (laut Python-Doku, Stand: 08.11.2026). faster-whisper braucht Python ab 3.9 und kein installiertes FFmpeg (laut faster-whisper-README, Stand: 08.11.2026).

apt install -y python3-venv
python3 -m venv /opt/whisper-cli
/opt/whisper-cli/bin/pip install whisper-ctranslate2
/opt/whisper-cli/bin/whisper-ctranslate2 podcast.mp3 \
  --model small --language de --compute_type int8 \
  --output_format srt --output_dir .
# Ergebnis im aktuellen Ordner

Batch-Skript

Für mehrere Dateien:

#!/bin/bash
# transcribe-all.sh
set -euo pipefail

INPUT_DIR="/data/audio"
OUTPUT_DIR="/data/transcripts"
mkdir -p "$OUTPUT_DIR"

for file in "$INPUT_DIR"/*.mp3; do
  [ -e "$file" ] || continue
  /opt/whisper-cli/bin/whisper-ctranslate2 "$file" \
    --model small --language de --compute_type int8 \
    --output_format srt --output_dir "$OUTPUT_DIR"
  echo "Fertig: $(basename "$file" .mp3)"
done

Performance-Optimierung

compute_type einstellen

faster-whisper nennt für die CPU int8, für die GPU float16 oder int8_float16. Im Projekt-Benchmark (Small, CPU) braucht int8 1 Min. 42 s und 1477 MB, fp32 2 Min. 37 s und 2257 MB (laut faster-whisper-README, Stand: 08.11.2026). In der CLI setzt du das mit --compute_type int8 (laut whisper-ctranslate2-Quellcode, Stand: 08.11.2026); Whishper dokumentiert dafür keine Einstellung (laut Whishper-Doku, Stand: 08.11.2026).

CPU-Threads

Whishper nutzt standardmäßig 4 CPU-Threads (CPU_THREADS, ab Version 3.1.2) (laut Whishper-Doku, Stand: 08.11.2026); in der Upstream-docker-compose.yml steht der Wert unter environment des Dienstes whishper. Die CLI setzt Threads mit --threads (laut whisper-ctranslate2-Quellcode, Stand: 08.11.2026). deploy.resources.limits begrenzt nur, was ein Container nutzen darf (laut Docker-Doku, Stand: 08.11.2026).

VAD (Voice Activity Detection)

faster-whisper bringt Silero VAD mit; in der Standardeinstellung entfernt vad_filter nur Stille über 2 Sekunden (laut faster-whisper-README, Stand: 08.11.2026). In der CLI: --vad_filter True (laut whisper-ctranslate2-Quellcode, Stand: 08.11.2026). Whishper dokumentiert dafür keine Einstellung (laut Whishper-Doku, Stand: 08.11.2026).


Automatisierung mit n8n

Mit n8n bindest du Transkription in Workflows ein. Der folgende Ablauf ist eine ungeprüfte Skizze:

Workflow: Audio per E-Mail → Transkript zurück

  1. Email Trigger (IMAP): E-Mail mit Audio-Anhang empfangen, mit der Option „Download Attachments“ (laut n8n-Doku, Stand: 08.11.2026)
  2. HTTP Request: Audio mit Body Content Type „Form-Data“ und Parameter Type „n8n Binary File“ an Whishper senden (laut n8n-Doku, Stand: 08.11.2026)
  3. Send Email: Ergebnis über „Attachments“ zurücksenden; ob die Antwort von Whishper das Transkript schon enthält oder du es später abholst, prüfst du selbst, weil die API das nicht dokumentiert (laut n8n-Doku, Stand: 08.11.2026)

In n8n:

[Email Trigger (IMAP)] → [HTTP Request an Whishper] → [Send Email mit Transkript]

Whishper hat eine REST-Schnittstelle POST /api/transcriptions mit den Formularfeldern file, language und modelSize. Laut Backend-README verbindet sie ASR-Dienst, Datenbank und Oberfläche; Antwortformat und Authentifizierung sind nicht dokumentiert (laut Whishper-Backend-README, Stand: 08.11.2026). Aus n8n rufst du https://whisper.deine-domain.de/api/transcriptions mit Basic-Auth-Zugangsdaten auf (HTTP Request, generische Zugangsdaten) (laut n8n-Doku, Stand: 08.11.2026):

POST https://whisper.deine-domain.de/api/transcriptions
Content-Type: multipart/form-data

file: [audio-file]
language: de
modelSize: small

Mehr zu n8n Self-Hosting: n8n Self-Hosting Guide →


Whisper kombinieren mit anderen Tools

Whisper + Ollama = Voice-to-LLM

Kombiniere Transkription mit KI-Analyse:

  1. Audio mit Whisper transkribieren
  2. Transkript an Ollama senden
  3. Zusammenfassung, Analyse oder Antwort generieren

Anwendungsfall: Meeting aufnehmen → Transkribieren → Action Items extrahieren lassen

Whisper + Paperless = Audio-Archiv

Transkribiere Voice Memos und archiviere sie in Paperless-ngx:

  1. Sprachnachricht aufnehmen
  2. Mit Whisper transkribieren
  3. Transkript als Textdatei an Paperless-ngx übergeben; Textdokumente übernimmt Paperless unverändert (laut Paperless-ngx-FAQ, Stand: 08.11.2026)

Eigener Server oder Transkriptionsdienst

Transkriptionsdienste rechnen nach ihren eigenen Bedingungen ab. Beim eigenen Server zahlst du den Tarif des Hosters; aktuelle Preise inkl. USt im VPS-Vergleich, den Bedarf schätzt der Whisper-Rechner.


Häufige Probleme

Transkription ist sehr langsam

Out of Memory Fehler

Das Modell ist zu groß für deinen RAM:

Killed (OOM)

Lösung: Kleineres Modell wählen oder einen Server mit mehr RAM, siehe VPS-Vergleich.

Schlechte Qualität bei deutschen Texten

Docker-Container startet nicht

# Logs prüfen
docker compose logs -f

# Neustart
docker compose down && docker compose up -d

Fazit

Du hast jetzt einen eigenen Transkriptions-Server mit faster-whisper. Aufnahmen und Transkripte liegen auf deinem Server; die Auslastung begrenzen CPU und RAM.

Für Podcasts: Transkript und Untertitel je Episode.

Für Videos: Untertitel als SRT oder VTT, im Whishper-Editor nachbearbeitet.

Für Gespräche mit Personenbezug: Aufnahmen bleiben auf deinem Server; was die DSGVO dafür verlangt, steht unter „Warum Whisper selbst hosten?“.

Nächster Schritt: Kombiniere Whisper mit Ollama für KI-Analyse oder n8n für Automatisierung.


Häufig gestellte Fragen

Wie lange dauert die Transkription auf CPU?
Das hängt von Modell, CPU und Threads ab. Das faster-whisper-Projekt nennt für das Small-Modell mit int8 auf einem Intel Core i7-12700K mit 8 Threads 1 Minute 42 Sekunden für 13 Minuten Audio.
Welches Whisper-Modell passt für deutsche Podcasts?
Für Deutsch kommen die mehrsprachigen Modelle infrage, nicht die .en-Varianten. Größere Modelle brauchen mehr Speicher und Zeit; large-v3 zeigt laut Whishper-Doku in vielen Sprachen verbesserte Ergebnisse.
Kann Whisper Sprecher unterscheiden?
Whisper selbst nicht, und auch Whishper nennt keine Sprechererkennung. Der Client whisper-ctranslate2 unterscheidet Sprecher mit pyannote.audio; dafür brauchst du ein Hugging-Face-Zugangstoken.
Brauche ich eine GPU für Whisper?
Nein. faster-whisper läuft auch auf der CPU, dort mit int8-Quantisierung; eine GPU beschleunigt die Transkription. RackDiff listet derzeit keine GPU-Server.
Wie viel Speicherplatz brauche ich?
Whishper lädt die gewählten Modelle beim ersten Start; größere Modelle brauchen mehr Speicherplatz. Dazu kommen Uploads, Datenbank und Übersetzungsmodelle im Ordner whishper_data. Der Bedarf hängt von Modellwahl und Audio-Menge ab.

Passenden VPS für Whisper finden

Der Whisper-Rechner schätzt aus Modell und Audio-Menge den Bedarf und zeigt passende Server.

Zum Whisper VPS-Rechner

Passender VPS-Rechner

Whisper Self-Hosting: Transkription auf eigenem Server

Podcasts transkribieren, Meeting-Protokolle erstellen, YouTube-Untertitel generieren.

Zum VPS-Rechner

Verwandte Artikel