This page was machine-translated. Spotted a mistake?Help improve it.
Skip to content

Erste Schritte

Vor dem Installieren ausprobieren

Erkunde die vollständige Oberfläche unter demo.snapotter.com - keine Anmeldung oder Installation erforderlich.

Schnellstart

bash
docker run -d --name SnapOtter -p 1349:1349 -v SnapOtter-data:/data snapotter/snapotter:latest

Dieser einzelne Container führt alles aus, was er benötigt: Ohne gesetztes DATABASE_URL startet er sein eigenes PostgreSQL und Redis auf der Loopback-Schnittstelle (Embedded-Modus) und hält alle Daten im SnapOtter-data-Volume. Es ist der schnellste Weg, SnapOtter auszuprobieren oder in einem Homelab selbst zu hosten. Für die Produktion führe den Docker-Compose-Stack unten aus, der PostgreSQL und Redis in ihren eigenen Containern hält. Der Embedded-Modus läuft als root (der Standard) und schaltet sich automatisch aus, sobald du DATABASE_URL setzt.

Du wirst beim ersten Login aufgefordert, dein Passwort zu ändern.

Anonyme Produkt-Analytics

SnapOtter enthält standardmäßig anonyme Produkt-Analytics. Um sie auszuschalten, öffne Einstellungen → System → Datenschutz und schalte Anonyme Produkt-Analytics aus. Es stoppt sofort für die gesamte Instanz.

Du kannst auch die Umgebungsvariable SNAPOTTER_TELEMETRY=0 setzen (false und off funktionieren ebenfalls), um alle Telemetrie für die Instanz ohne Neuaufbau zu deaktivieren.

Die Fehlerüberwachung wird von Sentry bereitgestellt, das SnapOtter über sein Open-Source-Programm unterstützt.

Für Details darüber, was erfasst wird, siehe Was SnapOtter erfasst.

NVIDIA-CUDA-Beschleunigung

Füge --gpus all für NVIDIA-CUDA-beschleunigte Hintergrundentfernung, Hochskalierung, OCR, Gesichtsverbesserung und Restaurierung hinzu:

bash
docker run -d --name SnapOtter -p 1349:1349 --gpus all -v SnapOtter-data:/data snapotter/snapotter:latest

Erfordert das NVIDIA Container Toolkit. Fällt automatisch auf die CPU zurück, wenn CUDA nicht verfügbar ist. Intel/AMD-iGPU-Beschleunigung über VA-API, Quick Sync oder OpenCL wird für KI-Inferenz derzeit nicht unterstützt. Siehe Docker-Tags für Benchmarks.

Auch auf GHCR
bash
docker run -d --name SnapOtter -p 1349:1349 -v SnapOtter-data:/data ghcr.io/snapotter-hq/snapotter:latest

Beide Registries veröffentlichen bei jedem Release dasselbe Image.

Docker Compose

yaml
services:
  SnapOtter:
    image: snapotter/snapotter:latest  # or ghcr.io/snapotter-hq/snapotter:latest
    ports:
      - "1349:1349"
    volumes:
      - SnapOtter-data:/data
    environment:
      - AUTH_ENABLED=true
      - DEFAULT_USERNAME=admin
      - DEFAULT_PASSWORD=admin
      - DATABASE_URL=postgres://snapotter:snapotter@postgres:5432/snapotter
      - REDIS_URL=redis://redis:6379
    depends_on:
      postgres:
        condition: service_healthy
      redis:
        condition: service_healthy
    restart: unless-stopped

  postgres:
    image: postgres:17-alpine
    environment:
      POSTGRES_USER: snapotter
      POSTGRES_PASSWORD: snapotter
      POSTGRES_DB: snapotter
    volumes:
      - SnapOtter-pgdata:/var/lib/postgresql/data
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U snapotter"]
      interval: 10s
      timeout: 5s
      retries: 12

  redis:
    image: redis:8-alpine
    command: ["redis-server", "--maxmemory-policy", "noeviction", "--appendonly", "yes"]
    volumes:
      - SnapOtter-redisdata:/data
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 5s
      retries: 12

volumes:
  SnapOtter-data:
  SnapOtter-pgdata:
  SnapOtter-redisdata:

Siehe Konfiguration für alle Umgebungsvariablen.

Aus dem Quellcode bauen

Voraussetzungen: Node.js 22+, pnpm 9+, Docker (für Postgres + Redis), Python 3.10+ (für KI-Funktionen), Git.

bash
git clone https://github.com/snapotter-hq/SnapOtter.git
cd SnapOtter
docker compose -f docker-compose.dev.yml up -d   # start Postgres + Redis
pnpm install
pnpm dev

Was du tun kannst

Dateiverarbeitung (200+ Tools)

ModalitätAnzahlBeispiel-Tools
Bild105Größe ändern, zuschneiden, komprimieren, konvertieren, Hintergrund entfernen, hochskalieren, OCR, Wasserzeichen, Collage, kolorieren, GIF-Tools, Format-Vorlagen
Video57Trimmen, zuschneiden, komprimieren, konvertieren, zusammenführen, Audio extrahieren, Auto-Untertitel, Video zu GIF, Größe ändern, stabilisieren, Format-Vorlagen
Audio27Trimmen, zusammenführen, konvertieren, normalisieren, Rauschunterdrückung, transkribieren, Tonhöhenverschiebung, Ein-/Ausblenden, Klingelton-Ersteller, Format-Vorlagen
PDF / Dokument42Zusammenführen, teilen, komprimieren, OCR, Wasserzeichen, schwärzen, Word zu PDF, Excel zu PDF, drehen, schützen, reparieren
Dateien10CSV zu JSON, JSON zu XML, CSVs zusammenführen, CSV teilen, ZIP erstellen, ZIP entpacken, Diagramm-Ersteller, YAML/JSON

Pipelines

Verkette Tools zu mehrstufigen Workflows und wende sie auf ein Bild oder einen ganzen Stapel an:

  1. Öffne Pipelines in der Seitenleiste.
  2. Füge Schritte hinzu (beliebiges Tool, beliebige Einstellungen).
  3. Führe sie auf einer einzelnen Datei aus - oder auf einem ganzen Stapel auf einmal.
  4. Speichere die Pipeline zur späteren Wiederverwendung.

Pipelines erlauben standardmäßig 20 Schritte. Setze MAX_PIPELINE_STEPS=0, um das Limit unbegrenzt zu machen.

Datei-Bibliothek

Jede von dir verarbeitete Datei kann in deiner Dateien-Bibliothek gespeichert werden. SnapOtter verfolgt die vollständige Versionshistorie, sodass du jeden Verarbeitungsschritt vom ursprünglichen Upload bis zur finalen Ausgabe nachvollziehen kannst.

Das Speichern ist explizit: Ergebnisse, die du in der Bibliothek speicherst, bleiben erhalten, bis du sie löschst, während Ergebnisse, die du verarbeitest und ungespeichert lässt, nach 72 Stunden automatisch entfernt werden (konfigurierbar über FILE_MAX_AGE_HOURS).

REST-API & API-Schlüssel

Jedes Tool ist über HTTP zugänglich:

bash
curl -X POST http://localhost:1349/api/v1/tools/image/resize \
  -H "Authorization: Bearer si_<your-api-key>" \
  -F "[email protected]" \
  -F 'settings={"width":800,"height":600,"fit":"cover"}'

Generiere API-Schlüssel unter Einstellungen → API-Schlüssel. Siehe die REST-API-Referenz für alle Endpunkte oder besuche http://localhost:1349/api/docs für die interaktive Referenz.

Mehrbenutzer & Teams

Aktiviere mehrere Benutzer mit rollenbasierter Zugriffskontrolle:

  • Admin: voller Zugriff - Benutzer, Teams, Einstellungen, alle Dateien/Pipelines/API-Schlüssel verwalten
  • Benutzer: Tools nutzen, eigene Dateien/Pipelines/API-Schlüssel verwalten

Erstelle Teams unter Einstellungen → Teams, um Benutzer zu gruppieren.

Setze AUTH_ENABLED=true (oder false für Einzelbenutzer/Eigennutzung ohne Login).