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

Початок роботи

Спробуйте перед встановленням

Ознайомтеся з повним інтерфейсом на demo.snapotter.com — без реєстрації чи встановлення.

Швидкий старт

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

Цей єдиний контейнер запускає все, що йому потрібно: без встановленого DATABASE_URL він запускає власні PostgreSQL і Redis на інтерфейсі loopback (вбудований режим) і зберігає всі дані в томі SnapOtter-data. Це найшвидший спосіб спробувати SnapOtter або самостійно розмістити його в homelab. Для продакшену запустіть стек Docker Compose нижче, який тримає PostgreSQL і Redis у власних контейнерах. Вбудований режим працює від root (за замовчуванням) і автоматично вимикається, щойно ви встановлюєте DATABASE_URL.

Під час першого входу вас попросять змінити пароль.

Анонімна продуктова аналітика

SnapOtter містить анонімну продуктову аналітику за замовчуванням. Щоб вимкнути її, відкрийте Settings → System → Privacy і вимкніть Anonymous Product Analytics. Вона зупиняється негайно для всього екземпляра.

Ви також можете встановити змінну середовища SNAPOTTER_TELEMETRY=0 (false і off теж працюють), щоб вимкнути всю телеметрію для екземпляра без повторного збирання.

Моніторинг помилок працює на Sentry, який спонсорує SnapOtter через свою програму з відкритим кодом.

Щодо деталей про те, що збирається, див. Що збирає SnapOtter.

Прискорення NVIDIA CUDA

Додайте --gpus all для прискорених через NVIDIA CUDA видалення фону, збільшення роздільності, OCR, покращення облич і реставрації:

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

Потребує NVIDIA Container Toolkit. Автоматично переходить на CPU, коли CUDA недоступний. Прискорення на iGPU Intel/AMD через VA-API, Quick Sync або OpenCL наразі не підтримується для AI-інференсу. Див. Docker Tags щодо бенчмарків.

Також на GHCR
bash
docker run -d --name SnapOtter -p 1349:1349 -v SnapOtter-data:/data ghcr.io/snapotter-hq/snapotter:latest

Обидва реєстри публікують той самий образ при кожному релізі.

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:

Див. Конфігурація щодо всіх змінних середовища.

Збирання з вихідного коду

Передумови: Node.js 22+, pnpm 9+, Docker (для Postgres + Redis), Python 3.10+ (для функцій 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

Що ви можете робити

Обробка файлів (200+ інструментів)

МодальністьКількістьПриклади інструментів
Зображення105Зміна розміру, Обрізання, Стиснення, Конвертація, Видалення фону, Upscale, OCR, Водяний знак, Колаж, Colorize, Інструменти GIF, пресети форматів
Відео57Обрізання, Обрізання за краями, Стиснення, Конвертація, Об'єднання, Витягнення аудіо, Автосубтитри, Відео у GIF, Зміна розміру, Стабілізація, пресети форматів
Аудіо27Обрізання, Об'єднання, Конвертація, Нормалізація, Зменшення шуму, Транскрипція, Зсув висоти тону, Затухання, Створення рингтонів, пресети форматів
PDF / Документ42Об'єднання, Розділення, Стиснення, OCR, Водяний знак, Редагування (redact), Word у PDF, Excel у PDF, Обертання, Захист, Відновлення
Файли10CSV у JSON, JSON у XML, Об'єднання CSV, Розділення CSV, Створення ZIP, Витягнення ZIP, Створення діаграм, YAML/JSON

Конвеєри

Об'єднуйте інструменти в багатоетапні робочі процеси й застосовуйте їх до одного зображення або цілого пакета:

  1. Відкрийте Pipelines на бічній панелі.
  2. Додайте кроки (будь-який інструмент, будь-які налаштування).
  3. Запустіть на одному файлі — або на цілому пакеті одразу.
  4. Збережіть конвеєр для повторного використання пізніше.

Конвеєри дозволяють 20 кроків за замовчуванням. Встановіть MAX_PIPELINE_STEPS=0, щоб зробити ліміт необмеженим.

Бібліотека файлів

Кожен файл, який ви обробляєте, можна зберегти у вашу бібліотеку Files. SnapOtter відстежує повну історію версій, тож ви можете простежити кожен крок обробки від оригінального завантаження до фінального результату.

Збереження є явним: результати, які ви зберігаєте в бібліотеку, зберігаються, доки ви їх не видалите, тоді як результати, які ви обробляєте й залишаєте незбереженими, автоматично очищаються через 72 години (налаштовується через FILE_MAX_AGE_HOURS).

REST API та ключі API

Кожен інструмент доступний через 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"}'

Генеруйте ключі API в Settings → API Keys. Див. довідник REST API щодо всіх кінцевих точок, або відвідайте http://localhost:1349/api/docs для інтерактивного довідника.

Багатокористувацький режим і команди

Увімкніть кількох користувачів із рольовим контролем доступу:

  • Admin: повний доступ — керування користувачами, командами, налаштуваннями, усіма файлами/конвеєрами/ключами API
  • User: використання інструментів, керування власними файлами/конвеєрами/ключами API

Створюйте команди в Settings → Teams, щоб групувати користувачів.

Встановіть AUTH_ENABLED=true (або false для однокористувацького/особистого використання без входу).