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

Kom igång

Prova innan du installerar

Utforska hela gränssnittet på demo.snapotter.com - ingen registrering eller installation krävs.

Snabbstart

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

Denna enda container kör allt den behöver: utan DATABASE_URL angivet startar den sin egen PostgreSQL och Redis på loopback-gränssnittet (inbäddat läge) och håller all data i SnapOtter-data-volymen. Det är det snabbaste sättet att prova SnapOtter eller att själv hosta i ett hemmalabb. För produktion, kör Docker Compose-stacken nedan, som håller PostgreSQL och Redis i sina egna containrar. Inbäddat läge körs som root (standardvärdet) och stängs av automatiskt så snart du anger DATABASE_URL.

Du kommer att ombes att ändra ditt lösenord vid första inloggningen.

Anonym produktanalys

SnapOtter innehåller anonym produktanalys som standard. För att stänga av den, öppna Settings → System → Privacy och stäng av Anonymous Product Analytics. Den stoppas omedelbart för hela instansen.

Du kan också ange miljövariabeln SNAPOTTER_TELEMETRY=0 (false och off fungerar också) för att inaktivera all telemetri för instansen utan en ombyggnad.

Felövervakning drivs av Sentry, som sponsrar SnapOtter genom sitt program för öppen källkod.

För detaljer om vad som samlas in, se Vad SnapOtter samlar in.

NVIDIA CUDA-acceleration

Lägg till --gpus all för NVIDIA CUDA-accelererad bakgrundsborttagning, uppskalning, OCR, ansiktsförbättring och restaurering:

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

Kräver NVIDIA Container Toolkit. Faller tillbaka till CPU automatiskt när CUDA inte är tillgängligt. Intel/AMD iGPU-acceleration via VA-API, Quick Sync eller OpenCL stöds inte för AI-inferens i dagsläget. Se Docker-taggar för benchmarktester.

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

Båda registren publicerar samma avbildning vid varje utgåva.

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:

Se Konfiguration för alla miljövariabler.

Bygg från källkod

Förutsättningar: Node.js 22+, pnpm 9+, Docker (för Postgres + Redis), Python 3.10+ (för AI-funktioner), 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

Vad du kan göra

Filbearbetning (200+ verktyg)

ModalitetAntalExempelverktyg
Bild105Ändra storlek, beskär, komprimera, konvertera, ta bort bakgrund, uppskala, OCR, vattenmärke, collage, färglägg, GIF-verktyg, formatförinställningar
Video57Klipp, beskär, komprimera, konvertera, slå samman, extrahera ljud, autotextning, video till GIF, ändra storlek, stabilisera, formatförinställningar
Ljud27Klipp, slå samman, konvertera, normalisera, brusreducering, transkribera, tonhöjdsskift, tona, ringsignalsskapare, formatförinställningar
PDF / dokument42Slå samman, dela, komprimera, OCR, vattenmärke, redigera bort, Word till PDF, Excel till PDF, rotera, skydda, reparera
Filer10CSV till JSON, JSON till XML, slå samman CSV-filer, dela CSV, skapa ZIP, extrahera ZIP, diagramskapare, YAML/JSON

Pipelines

Kedja ihop verktyg till arbetsflöden i flera steg och applicera dem på en bild eller en hel batch:

  1. Öppna Pipelines i sidofältet.
  2. Lägg till steg (valfritt verktyg, valfria inställningar).
  3. Kör på en enda fil - eller en hel batch på en gång.
  4. Spara pipelinen för senare återanvändning.

Pipelines tillåter 20 steg som standard. Ange MAX_PIPELINE_STEPS=0 för att göra gränsen obegränsad.

Filbibliotek

Varje fil du bearbetar kan sparas i ditt Files-bibliotek. SnapOtter spårar den fullständiga versionshistoriken så att du kan spåra varje bearbetningssteg från den ursprungliga uppladdningen till det slutliga resultatet.

Sparande är explicit: resultat som du sparar i biblioteket behålls tills du raderar dem, medan resultat som du bearbetar och lämnar osparade rensas automatiskt efter 72 timmar (konfigurerbart via FILE_MAX_AGE_HOURS).

REST API och API-nycklar

Varje verktyg är tillgängligt via HTTP:

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"}'

Generera API-nycklar under Settings → API Keys. Se REST API-referensen för alla slutpunkter, eller besök http://localhost:1349/api/docs för den interaktiva referensen.

Fleranvändare och team

Aktivera flera användare med rollbaserad åtkomstkontroll:

  • Admin: fullständig åtkomst - hantera användare, team, inställningar, alla filer/pipelines/API-nycklar
  • User: använd verktyg, hantera egna filer/pipelines/API-nycklar

Skapa team under Settings → Teams för att gruppera användare.

Ange AUTH_ENABLED=true (eller false för enanvändare/eget bruk utan inloggning).