Deze pagina is automatisch vertaald. Fout gezien?Help mee om het te verbeteren.
Skip to content

Docker-image ​

SnapOtter wordt geleverd als één enkele Docker-image. Draai deze op zichzelf en er wordt een ingebedde PostgreSQL 17 en Redis op de loopback-interface gestart (ingebedde modus); voor productie draai je deze naast aparte PostgreSQL 17- en Redis 8-containers met Compose. De app-image werkt op alle platforms.

Snelstart ​

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

Zonder ingestelde DATABASE_URL draait dit in ingebedde modus: PostgreSQL en Redis starten binnen de container op loopback, met alle gegevens onder het SnapOtter-data-volume. Stel DATABASE_URL en REDIS_URL in (zoals de Compose-stack doet) om in plaats daarvan externe services te gebruiken. Zie Configuratie.

NVIDIA CUDA-versnelling ​

De image bevat NVIDIA CUDA-ondersteuning op amd64. Als je een NVIDIA-GPU met de NVIDIA Container Toolkit geïnstalleerd hebt, voeg dan --gpus all toe:

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

De image detecteert CUDA automatisch tijdens runtime. Zonder --gpus all, of wanneer CUDA niet beschikbaar is, draaien AI-tools op de CPU. Hoe dan ook dezelfde image.

Intel/AMD-iGPU-versnelling via VA-API, Quick Sync of OpenCL wordt momenteel niet ondersteund voor SnapOtter AI-inferentie. Het toewijzen van /dev/dri aan de container kan het render-apparaat blootstellen, maar de AI-runtime blijft de CPU gebruiken tenzij CUDA beschikbaar is.

Benchmarks ​

Getest op een NVIDIA RTX 4070 (12 GB VRAM) met een 572x1024 JPEG-portret.

Warme prestaties ​

ToolCPUGPUVersnelling
Achtergrond verwijderen (u2net)2.415ms879ms2,7x
Achtergrond verwijderen (isnet)2.457ms1.137ms2,2x
Upscalen 2x350ms309ms1,1x
Upscalen 4x910ms310ms2,9x
Gezicht vervagen139ms122ms1,1x

Koude start (eerste verzoek na containerstart) ​

ToolCPUGPUVersnelling
Achtergrond verwijderen22.286ms4.792ms4,7x
Upscalen 2x3.957ms2.318ms1,7x

OCR is niet opgenomen in de CUDA-vergelijking. Zowel de ingebouwde Tesseract-laag als de optionele RapidOCR/ONNX-lagen gebruiken CPU, ook wanneer de container NVIDIA GPU-toegang heeft.

CUDA-gezondheidscontrole ​

Na het eerste AI-verzoek rapporteert het admin-gezondheidseindpunt de CUDA GPU-status:

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

Docker Compose ​

De volledige Compose-stack bevat de app, PostgreSQL 17 en Redis 8. Zie Implementatie voor de volledige docker-compose.yml. Een minimaal voorbeeld:

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     # Wijzig dit voor niet-lokale implementaties
      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:

Voeg voor NVIDIA CUDA-versnelling via Docker Compose de deploy-sectie toe aan de SnapOtter-service:

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

Versievastzetting ​

TagBeschrijving
latestNieuwste release
2.2.0Exacte versie
2.2Nieuwste patch in 2.2.x
2Nieuwste minor in 2.x

Platforms ​

ArchitectuurGPU-ondersteuningOpmerkingen
linux/amd64NVIDIA CUDAVolledige CUDA-versnelling voor AI-tools
linux/arm64Alleen CPURaspberry Pi 4/5, Apple Silicon via Docker Desktop

Migratie van vorige tags ​

Gebruikte je de :cuda-tag, schakel dan over naar :latest en houd --gpus all aan. Dezelfde GPU-ondersteuning, verenigde image.

Je gegevens en instellingen blijven behouden in de volumes.