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

Docker-avbildning

SnapOtter levereras som en enda Docker-avbildning. Kör den fristående så startar den en inbäddad PostgreSQL 17 och Redis på loopback-gränssnittet (inbäddat läge); i produktion kör du den tillsammans med separata containrar för PostgreSQL 17 och Redis 8 med Compose. App-avbildningen fungerar på alla plattformar.

Snabbstart

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

Utan att DATABASE_URL är satt körs detta i inbäddat läge: PostgreSQL och Redis startar inuti containern på loopback, med all data under volymen SnapOtter-data. Sätt DATABASE_URL och REDIS_URL (som Compose-stacken gör) för att använda externa tjänster i stället. Se Konfiguration.

NVIDIA CUDA-acceleration

Avbildningen inkluderar stöd för NVIDIA CUDA på amd64. Om du har en NVIDIA-GPU med NVIDIA Container Toolkit installerat lägger du till --gpus all:

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

Avbildningen upptäcker CUDA automatiskt vid körning. Utan --gpus all, eller när CUDA inte är tillgängligt, körs AI-verktygen på CPU. Samma avbildning oavsett.

Acceleration med Intel/AMD iGPU via VA-API, Quick Sync eller OpenCL stöds inte för SnapOtters AI-inferens i dag. Att mappa in /dev/dri i containern kan exponera renderingsenheten, men AI-körtiden använder fortfarande CPU om inte CUDA finns tillgängligt.

Benchmarks

Testat på en NVIDIA RTX 4070 (12 GB VRAM) med ett 572x1024 JPEG-porträtt.

Varm prestanda

VerktygCPUGPUSnabbhetsökning
Bakgrundsborttagning (u2net)2 415 ms879 ms2,7x
Bakgrundsborttagning (isnet)2 457 ms1 137 ms2,2x
Uppskalning 2x350 ms309 ms1,1x
Uppskalning 4x910 ms310 ms2,9x
OCR (PaddleOCR)137 ms94 ms1,5x
Ansiktsoskärpa139 ms122 ms1,1x

Kallstart (första begäran efter containerstart)

VerktygCPUGPUSnabbhetsökning
Bakgrundsborttagning22 286 ms4 792 ms4,7x
Uppskalning 2x3 957 ms2 318 ms1,7x
OCR (PaddleOCR)1 469 ms1 090 ms1,3x

CUDA-hälsokontroll

Efter den första AI-begäran rapporterar administratörens hälsoslutpunkt CUDA-GPU-status:

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

Docker Compose

Hela Compose-stacken inkluderar appen, PostgreSQL 17 och Redis 8. Se Distribution för den kompletta docker-compose.yml. Ett minimalt exempel:

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-acceleration via Docker Compose lägger du till deploy-avsnittet till SnapOtter-tjänsten:

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

Versionslåsning

TaggBeskrivning
latestSenaste utgåvan
1.11.0Exakt version
1.11Senaste patch i 1.11.x
1Senaste minor i 1.x

Plattformar

ArkitekturGPU-stödAnteckningar
linux/amd64NVIDIA CUDAFull CUDA-acceleration för AI-verktyg
linux/arm64Endast CPURaspberry Pi 4/5, Apple Silicon via Docker Desktop

Migrering från tidigare taggar

Om du använde taggen :cuda byter du till :latest och behåller --gpus all. Samma GPU-stöd, en enhetlig avbildning.

Dina data och inställningar bevaras i volymerna.