This page was machine-translated. Spotted a mistake?Help improve it.
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
OCR (PaddleOCR)137 ms94 ms1,5x
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 (PaddleOCR)1.469 ms1.090 ms1,3x

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
      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-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
1.11.0Exakte Version
1.11Neuester Patch in 1.11.x
1Neueste Minor-Version in 1.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.