Files
SnapOtter/apps/docs/it/guide/getting-started.md
T
SnapOtterandGitHub 5f21588f6c chore: prepare the 2.2.0 release (#660)
Bumps every version surface to 2.2.0, fixes a latent version-coupling bug in the
OCR runtime tests, and stops an absent GPU runner from silently stalling a
release.

Version surfaces: scripts/sync-version.sh covers the 11 workspaces, APP_VERSION,
and the docs release commands across all locales. Root package.json plus the
three surfaces the script never reaches are done by hand: the DOCKERHUB.md banner
and tag table, the docker-tags.md pinning table in 21 locales, and the example
runtimeVersion in tools/image/ocr.md in 21 locales. The release-notes archive step
is deliberately not pre-run, so the notes text stays editable until the release.

Latent bug: runtime-state rejects any runtime whose compatibility.snapotterVersion
is not exactly APP_VERSION, and five fixtures pinned the literal 2.1.0. Since
semantic-release rewrites APP_VERSION on every release, the first PR after any
bump would have gone red for a reason nobody would trace to the release. The
fixtures now derive from APP_VERSION.

GPU runner: sign-ocr-index needs verify-ocr-nvidia on self-hosted hardware, and
the gated manifest job needs ai-bundles, so a missing runner queued instead of
failing and produced no image tags. preflight-gpu-runner claims the same labels
with no dependencies, so it is scheduled first and validates the GPU before the
90-minute build. An API preflight is impossible because listing self-hosted
runners needs Administration:read, which GITHUB_TOKEN cannot hold, so RELEASE.md
carries the maintainer-side check.
2026-07-27 22:09:31 +08:00

8.1 KiB

description, i18n_source_hash, i18n_provenance, i18n_output_hash, i18n_hash_version
description i18n_source_hash i18n_provenance i18n_output_hash i18n_hash_version
Installa SnapOtter con Docker in un solo comando. Include la configurazione di Docker Compose, la compilazione dal codice sorgente e una panoramica completa delle funzionalità. 8040133a6982 machine 5061d54954a1 2

Per iniziare

::: tip Prova prima di installare Esplora l'interfaccia completa su demo.snapotter.com, senza registrazione né installazione. :::

Avvio rapido

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

Questo singolo contenitore esegue tutto ciò di cui ha bisogno: senza alcun set DATABASE_URL, avvia il proprio PostgreSQL e Redis sull'interfaccia di loopback (modalità incorporata) e mantiene tutti i dati nel volume SnapOtter-data. È il modo più veloce per provare SnapOtter o ospitare autonomamente un laboratorio domestico. Per la produzione, utilizzare lo stack canonico Docker Compose, che mantiene PostgreSQL e Redis nei propri contenitori. La modalità incorporata viene eseguita come root (impostazione predefinita) e si disattiva automaticamente non appena si imposta DATABASE_URL.

Stai installando su un Raspberry Pi, un vecchio laptop o un piccolo VPS? Vedi Configurazioni a basse risorse per una guida già calibrata e per sapere cosa aspettarti da hardware limitato.

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

::: tip 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. :::

::: tip Accelerazione NVIDIA CUDA Aggiungi --gpus all per NVIDIA rimozione dello sfondo, upscaling, miglioramento del volto e ripristino accelerati da CUDA. OCR rimane basato sulla CPU e funziona nella stessa immagine con o senza accesso GPU:

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

Richiede NVIDIA Container Toolkit. Ritorna automaticamente alla CPU quando CUDA non è disponibile. L'accelerazione iGPU Intel/AMD tramite VA-API, Quick Sync o OpenCL non è attualmente supportata per l'inferenza AI. Vedi Docker Tags per i benchmark. Se gli strumenti AI vengono eseguiti sulla CPU nonostante --gpus all, vedere Verificare l'accelerazione GPU. :::

::: details Anche su GHCR

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 Componi

Utilizza il file di produzione mantenuto e testato con ogni versione invece di copiare un esempio di Compose abbreviato da questa pagina:

install -d -m 700 snapotter && cd snapotter
curl --proto '=https' --tlsv1.2 -fsSLo docker-compose.yml \
  https://raw.githubusercontent.com/snapotter-hq/SnapOtter/v2.2.0/docker/docker-compose.yml

# Keep generated service credentials out of shell history and world-readable files.
umask 077
POSTGRES_PASSWORD="$(openssl rand -hex 32)"
REDIS_PASSWORD="$(openssl rand -hex 32)"
printf 'POSTGRES_PASSWORD=%s\nREDIS_PASSWORD=%s\n' \
  "$POSTGRES_PASSWORD" "$REDIS_PASSWORD" > .env

docker compose -f docker-compose.yml pull
docker compose -f docker-compose.yml up -d --no-build

Il docker/docker-compose.yml canonico include tutti e quattro i volumi di runtime, controlli di integrità, limiti delle risorse, configurazione Redis durevole, immagini di database/cache bloccate e l'attuale rafforzamento del contenitore. Modificare la password amministratore predefinita immediatamente dopo il primo accesso. Per una distribuzione riproducibile, aggiungi l'immagine dell'applicazione SnapOtter al tag di rilascio o al digest che hai verificato invece di seguire latest.

Consulta Configurazione per tutte le variabili di ambiente e Sicurezza e protezione avanzata per segreti, criteri di rete e indicazioni sul backup.

Compilazione dal codice sorgente

Prerequisiti: Node.js 22.22+, pnpm 9+, Docker (per Postgres + Redis), Python 3.11+ (per le funzionalità AI), Git.

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à Numero Strumenti di esempio
Immagine 107 Ridimensiona, Ritaglia, Comprimi, Converti, Rimuovi sfondo, Upscaling, OCR, Filigrana, Collage, Colorizza, Strumenti GIF, preset di formato
Video 57 Taglia, Ritaglia, Comprimi, Converti, Unisci, Estrai audio, Sottotitoli automatici, Da video a GIF, Ridimensiona, Stabilizza, preset di formato
Audio 27 Taglia, Unisci, Converti, Normalizza, Riduzione del rumore, Trascrivi, Cambio di tonalità, Dissolvenza, Creatore di suonerie, preset di formato
PDF / Documenti 29 Unisci, Dividi, Comprimi, OCR, Filigrana, Oscura, Da Word a PDF, Da Excel a PDF, Ruota, Proteggi, Ripara
File 23 Da 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:

curl -X POST http://localhost:1349/api/v1/tools/image/resize \
  -H "Authorization: Bearer si_<your-api-key>" \
  -F "file=@photo.jpg" \
  -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).