Diese Seite wurde maschinell übersetzt. Einen Fehler entdeckt?Helfen Sie mit, sie zu verbessern.
Skip to content

Docker-Image ​

SnapOtter wird als einzelnes Docker-Image ausgeliefert. Wenn Sie es allein ausführen, startet es ein eingebettetes PostgreSQL 17 und Redis auf der Loopback-Schnittstelle (eingebetteter Modus); für den Produktivbetrieb führen Sie es zusammen mit separaten PostgreSQL-17- und Redis-8-Containern per Compose aus. Das App-Image funktioniert auf allen Plattformen.

Schnellstart ​

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

Ohne gesetztes DATABASE_URL läuft dies im eingebetteten Modus: PostgreSQL und Redis starten innerhalb des Containers auf dem Loopback, wobei alle Daten unter dem Volume SnapOtter-data liegen. Setzen Sie DATABASE_URL und REDIS_URL (wie es der Compose-Stack tut), um stattdessen externe Dienste zu verwenden. Siehe Konfiguration.

NVIDIA-CUDA-Beschleunigung ​

Das Image enthält NVIDIA-CUDA-Unterstützung auf amd64. Wenn Sie über eine NVIDIA-GPU mit installiertem NVIDIA Container Toolkit verfügen, fügen Sie --gpus all hinzu:

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

Das Image erkennt CUDA zur Laufzeit automatisch. Ohne --gpus all oder wenn CUDA nicht verfügbar ist, laufen die KI-Werkzeuge auf der CPU. In beiden Fällen dasselbe Image.

Intel/AMD-iGPU-Beschleunigung über VA-API, Quick Sync oder OpenCL wird für die KI-Inferenz von SnapOtter derzeit nicht unterstützt. Das Einbinden von /dev/dri in den Container kann das Rendergerät verfügbar machen, aber die KI-Laufzeit nutzt weiterhin die CPU, sofern CUDA nicht verfügbar ist.

Benchmarks ​

Getestet auf einer NVIDIA RTX 4070 (12 GB VRAM) mit einem 572x1024-JPEG-Porträt.

Warme Leistung ​

WerkzeugCPUGPUBeschleunigung
Hintergrundentfernung (u2net)2.415 ms879 ms2,7x
Hintergrundentfernung (isnet)2.457 ms1.137 ms2,2x
Hochskalierung 2x350 ms309 ms1,1x
Hochskalierung 4x910 ms310 ms2,9x
Gesichtsunschärfe139 ms122 ms1,1x

Kaltstart (erste Anfrage nach Containerstart) ​

WerkzeugCPUGPUBeschleunigung
Hintergrundentfernung22.286 ms4.792 ms4,7x
Hochskalierung 2x3.957 ms2.318 ms1,7x

OCR ist nicht im CUDA-Vergleich enthalten. Sowohl die integrierte Tesseract-Ebene als auch die optionalen RapidOCR/ONNX-Ebenen verwenden CPU. Dies gilt auch dann, wenn der Container Zugriff auf NVIDIA GPU hat.

CUDA-Statusprüfung ​

Nach der ersten KI-Anfrage meldet der Admin-Health-Endpunkt den Status der CUDA-GPU:

GET /api/v1/admin/health
{"ai": {"gpu": true}}

Docker Compose ​

Der vollständige Compose-Stack umfasst die App, PostgreSQL 17 und Redis 8. Siehe Bereitstellung für die vollständige docker-compose.yml. Ein minimales Beispiel:

yaml
services:
  SnapOtter:
    image: snapotter/snapotter:latest
    ports:
      - "1349:1349"
    volumes:
      - SnapOtter-data:/data
      - SnapOtter-workspace:/tmp/workspace
    environment:
      - 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
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"

  postgres:
    image: postgres:17-alpine
    environment:
      POSTGRES_USER: snapotter
      POSTGRES_PASSWORD: snapotter     # Ändern Sie dies für nicht lokale Bereitstellungen
      POSTGRES_DB: snapotter
    volumes:
      - SnapOtter-pgdata:/var/lib/postgresql/data
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U snapotter -d 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-workspace:
  SnapOtter-pgdata:
  SnapOtter-redisdata:

Für NVIDIA-CUDA-Beschleunigung über Docker Compose fügen Sie den deploy-Abschnitt zum SnapOtter-Dienst hinzu:

yaml
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]

Versionsfixierung ​

TagBeschreibung
latestNeueste Version
2.2.0Exakte Version
2.2Neuester Patch in 2.2.x
2Neueste Minor-Version in 2.x

Plattformen ​

ArchitekturGPU-UnterstützungHinweise
linux/amd64NVIDIA CUDAVolle CUDA-Beschleunigung für KI-Werkzeuge
linux/arm64nur CPURaspberry Pi 4/5, Apple Silicon über Docker Desktop

Migration von früheren Tags ​

Wenn Sie den Tag :cuda verwendet haben, wechseln Sie zu :latest und behalten Sie --gpus all. Gleiche GPU-Unterstützung, vereinheitlichtes Image.

Ihre Daten und Einstellungen bleiben in den Volumes erhalten.