Files
SnapOtter/apps/docs/es/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.4 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
Instala SnapOtter con Docker en un solo comando. Incluye la configuración de Docker Compose, la compilación desde el código fuente y una descripción completa de las funciones. 8040133a6982 machine 5d9ea3a3420e 2

Primeros pasos

::: tip Pruébalo antes de instalar Explora la interfaz completa en demo.snapotter.com, sin necesidad de registro ni instalación. :::

Inicio rápido

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

Este único contenedor ejecuta todo lo que necesita: sin DATABASE_URL configurado, inicia su propio PostgreSQL y Redis en la interfaz loopback (modo integrado) y mantiene todos los datos en el volumen SnapOtter-data. Es la forma más rápida de probar SnapOtter o autohospedarse en un laboratorio doméstico. Para producción, utilice la pila canónica de Docker Compose, que mantiene PostgreSQL y Redis en sus propios contenedores. El modo integrado se ejecuta como root (el valor predeterminado) y se apaga automáticamente tan pronto como configura DATABASE_URL.

¿Vas a instalar en una Raspberry Pi, un portátil viejo o un VPS pequeño? Consulta Configuraciones con recursos limitados para una guía paso a paso ajustada y para saber qué esperar de un hardware limitado.

Se te pedirá que cambies tu contraseña en el primer inicio de sesión.

::: tip Analítica Anónima de Producto SnapOtter incluye analítica de producto anónima por defecto. Para desactivarla, abre Ajustes → Sistema → Privacidad y desactiva Analítica Anónima de Producto. Se detiene de inmediato para toda la instancia.

También puedes establecer la variable de entorno SNAPOTTER_TELEMETRY=0 (false y off también funcionan) para deshabilitar toda la telemetría de la instancia sin recompilar.

La monitorización de errores funciona con Sentry, que patrocina a SnapOtter a través de su programa de código abierto.

Para más detalles sobre qué se recopila, consulta Qué recopila SnapOtter. :::

::: tip Aceleración con NVIDIA CUDA Agregue --gpus all para NVIDIA eliminación de fondo, ampliación, mejora facial y restauración acelerada por CUDA. OCR permanece basado en CPU y funciona en la misma imagen con o sin acceso a GPU:

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

Requiere el NVIDIA Container Toolkit. Vuelve a la CPU automáticamente cuando CUDA no está disponible. La aceleración Intel/AMD iGPU a través de VA-API, Quick Sync u OpenCL no es compatible con la inferencia de IA en la actualidad. Consulte Etiquetas Docker para conocer los puntos de referencia. Si las herramientas de IA se ejecutan en la CPU a pesar de --gpus all, consulte Verificar la aceleración de la GPU. :::

::: details También en GHCR

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

Ambos registros publican la misma imagen en cada versión. :::

Docker componer

Utilice el archivo de producción mantenido y probado con cada versión en lugar de copiar un ejemplo de Compose abreviado de esta página:

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

El canónico docker/docker-compose.yml incluye los cuatro volúmenes de tiempo de ejecución, comprobaciones de estado, límites de recursos, configuración duradera de Redis, imágenes de caché/base de datos fijadas y el refuerzo del contenedor actual. Cambie la contraseña de administrador predeterminada inmediatamente después del primer inicio de sesión. Para una implementación reproducible, fije la imagen de la aplicación SnapOtter a la etiqueta de versión o resumen que verificó en lugar de seguir latest.

Consulte Configuración para conocer todas las variables de entorno y Seguridad y refuerzo para conocer secretos, políticas de red y orientación sobre copias de seguridad.

Compilar desde el código fuente

Requisitos previos: Node.js 22.22+, pnpm 9+, Docker (para Postgres + Redis), Python 3.11+ (para funciones de IA), 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

Qué puedes hacer

Procesamiento de archivos (200+ herramientas)

Modalidad Recuento Herramientas de ejemplo
Imagen 107 Redimensionar, Recortar, Comprimir, Convertir, Eliminar fondo, Escalar, OCR, Marca de agua, Collage, Colorizar, Herramientas GIF, ajustes de formato predefinidos
Vídeo 57 Recortar, Recortar marco, Comprimir, Convertir, Combinar, Extraer audio, Subtítulos automáticos, Vídeo a GIF, Redimensionar, Estabilizar, ajustes de formato predefinidos
Audio 27 Recortar, Combinar, Convertir, Normalizar, Reducción de ruido, Transcribir, Cambio de tono, Fundido, Creador de tonos de llamada, ajustes de formato predefinidos
PDF / Documento 29 Combinar, Dividir, Comprimir, OCR, Marca de agua, Redactar, Word a PDF, Excel a PDF, Rotar, Proteger, Reparar
Archivos 23 CSV a JSON, JSON a XML, Combinar CSVs, Dividir CSV, Crear ZIP, Extraer ZIP, Creador de gráficos, YAML/JSON

Canalizaciones

Encadena herramientas en flujos de trabajo de varios pasos y aplícalos a una imagen o a un lote completo:

  1. Abre Canalizaciones en la barra lateral.
  2. Añade pasos (cualquier herramienta, cualquier configuración).
  3. Ejecuta sobre un solo archivo, o sobre un lote entero a la vez.
  4. Guarda la canalización para reutilizarla más tarde.

Las canalizaciones permiten 20 pasos por defecto. Establece MAX_PIPELINE_STEPS=0 para dejar el límite en ilimitado.

Biblioteca de archivos

Cada archivo que proceses puede guardarse en tu biblioteca de Archivos. SnapOtter registra el historial de versiones completo para que puedas rastrear cada paso de procesamiento desde la subida original hasta la salida final.

Guardar es explícito: los resultados que guardas en la biblioteca se conservan hasta que los eliminas, mientras que los resultados que procesas y dejas sin guardar se eliminan automáticamente tras 72 horas (configurable mediante FILE_MAX_AGE_HOURS).

API REST y claves de API

Cada herramienta es accesible mediante 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 claves de API en Ajustes → Claves de API. Consulta la referencia de la API REST para todos los endpoints, o visita http://localhost:1349/api/docs para la referencia interactiva.

Multiusuario y equipos

Habilita varios usuarios con control de acceso basado en roles:

  • Administrador: acceso completo, gestiona usuarios, equipos, ajustes, todos los archivos/canalizaciones/claves de API
  • Usuario: usa herramientas, gestiona sus propios archivos/canalizaciones/claves de API

Crea equipos en Ajustes → Equipos para agrupar usuarios.

Establece AUTH_ENABLED=true (o false para un solo usuario/uso propio sin inicio de sesión).