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

Per iniziare

Prova prima di installare

Esplora l'interfaccia completa su demo.snapotter.com, senza registrazione né installazione.

Avvio rapido

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

Questo singolo container esegue tutto ciò di cui ha bisogno: senza alcun DATABASE_URL impostato, avvia il proprio PostgreSQL e Redis sull'interfaccia loopback (modalità integrata) e conserva tutti i dati nel volume SnapOtter-data. È il modo più rapido per provare SnapOtter o auto-ospitarlo su un homelab. Per la produzione, esegui lo stack Docker Compose qui sotto, che mantiene PostgreSQL e Redis nei loro container. La modalità integrata gira come root (l'impostazione predefinita) e si disattiva automaticamente non appena imposti DATABASE_URL.

Ti verrà chiesto di cambiare la password al primo login.

Analytics di prodotto anonime

SnapOtter include analytics di prodotto anonime per impostazione predefinita. Per disattivarle, apri Impostazioni → Sistema → Privacy e disattiva Anonymous Product Analytics. Si ferma immediatamente per l'intera istanza.

Puoi anche impostare la variabile d'ambiente SNAPOTTER_TELEMETRY=0 (funzionano anche false e off) per disabilitare tutta la telemetria per l'istanza senza una ricostruzione.

Il monitoraggio degli errori è basato su Sentry, che sponsorizza SnapOtter attraverso il suo programma open-source.

Per i dettagli su ciò che viene raccolto, vedi Cosa raccoglie SnapOtter.

Accelerazione NVIDIA CUDA

Aggiungi --gpus all per rimozione dello sfondo, upscaling, OCR, miglioramento dei volti e restauro accelerati da NVIDIA CUDA:

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

Richiede il NVIDIA Container Toolkit. Effettua automaticamente il fallback su CPU quando CUDA non è disponibile. L'accelerazione tramite iGPU Intel/AMD attraverso VA-API, Quick Sync o OpenCL non è supportata per l'inferenza AI al momento. Vedi Tag Docker per i benchmark.

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

Entrambi i registry pubblicano la stessa immagine a ogni rilascio.

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:

Vedi Configurazione per tutte le variabili d'ambiente.

Compilazione dal codice sorgente

Prerequisiti: Node.js 22+, pnpm 9+, Docker (per Postgres + Redis), Python 3.10+ (per le funzionalità AI), 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

Cosa puoi fare

Elaborazione di file (200+ strumenti)

ModalitàNumeroStrumenti di esempio
Immagine105Ridimensiona, Ritaglia, Comprimi, Converti, Rimuovi sfondo, Upscaling, OCR, Filigrana, Collage, Colorizza, Strumenti GIF, preset di formato
Video57Taglia, Ritaglia, Comprimi, Converti, Unisci, Estrai audio, Sottotitoli automatici, Da video a GIF, Ridimensiona, Stabilizza, preset di formato
Audio27Taglia, Unisci, Converti, Normalizza, Riduzione del rumore, Trascrivi, Cambio di tonalità, Dissolvenza, Creatore di suonerie, preset di formato
PDF / Documenti42Unisci, Dividi, Comprimi, OCR, Filigrana, Oscura, Da Word a PDF, Da Excel a PDF, Ruota, Proteggi, Ripara
File10Da CSV a JSON, Da JSON a XML, Unisci CSV, Dividi CSV, Crea ZIP, Estrai ZIP, Creatore di grafici, YAML/JSON

Pipeline

Concatena gli strumenti in flussi di lavoro a più passaggi e applicali a una singola immagine o a un intero batch:

  1. Apri Pipeline nella barra laterale.
  2. Aggiungi i passaggi (qualsiasi strumento, qualsiasi impostazione).
  3. Esegui su un singolo file, o su un intero batch in una volta sola.
  4. Salva la pipeline per riutilizzarla in seguito.

Le pipeline consentono 20 passaggi per impostazione predefinita. Imposta MAX_PIPELINE_STEPS=0 per rendere il limite illimitato.

Libreria di file

Ogni file che elabori può essere salvato nella tua libreria File. SnapOtter tiene traccia della cronologia completa delle versioni, così puoi ricostruire ogni passaggio di elaborazione dall'upload originale all'output finale.

Il salvataggio è esplicito: i risultati che salvi nella libreria vengono conservati finché non li elimini, mentre i risultati che elabori e lasci non salvati vengono cancellati automaticamente dopo 72 ore (configurabile tramite FILE_MAX_AGE_HOURS).

REST API e chiavi API

Ogni strumento è accessibile 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"}'

Genera chiavi API in Impostazioni → Chiavi API. Vedi il riferimento REST API per tutti gli endpoint, oppure visita http://localhost:1349/api/docs per il riferimento interattivo.

Multi-utente e team

Abilita più utenti con controllo degli accessi basato sui ruoli:

  • Admin: accesso completo, gestisce utenti, team, impostazioni, tutti i file/pipeline/chiavi API
  • Utente: usa gli strumenti, gestisce i propri file/pipeline/chiavi API

Crea team in Impostazioni → Team per raggruppare gli utenti.

Imposta AUTH_ENABLED=true (o false per utente singolo/uso personale senza login).