Search K
Memulai
Coba sebelum memasang
Jelajahi UI lengkap di demo.snapotter.com, tanpa pendaftaran atau instalasi diperlukan.
Quick Start
bash
docker run -d --name SnapOtter -p 1349:1349 -v SnapOtter-data:/data snapotter/snapotter:latestKontainer tunggal ini menjalankan semua yang dibutuhkannya: tanpa DATABASE_URL yang diatur, ia memulai PostgreSQL dan Redis sendiri pada antarmuka loopback (mode embedded) dan menyimpan semua data di volume SnapOtter-data. Ini adalah cara tercepat untuk mencoba SnapOtter atau self-host di homelab. Untuk produksi, jalankan stack Docker Compose di bawah, yang menjaga PostgreSQL dan Redis di kontainer mereka sendiri. Mode embedded berjalan sebagai root (default) dan mati secara otomatis segera setelah Anda mengatur DATABASE_URL.
Anda akan diminta mengubah kata sandi Anda saat login pertama.
Analitik Produk Anonim
SnapOtter menyertakan analitik produk anonim secara default. Untuk mematikannya, buka Settings → System → Privacy dan matikan Anonymous Product Analytics. Analitik berhenti segera untuk seluruh instance.
Anda juga dapat mengatur variabel lingkungan SNAPOTTER_TELEMETRY=0 (false dan off juga berfungsi) untuk menonaktifkan semua telemetri untuk instance tanpa rebuild.
Pemantauan kesalahan didukung oleh Sentry, yang mensponsori SnapOtter melalui program open-source-nya.
Untuk detail tentang apa yang dikumpulkan, lihat Apa yang dikumpulkan SnapOtter.
Akselerasi NVIDIA CUDA
Tambahkan --gpus all untuk penghapusan latar belakang, upscaling, OCR, penyempurnaan wajah, dan restorasi yang diakselerasi NVIDIA CUDA:
bash
docker run -d --name SnapOtter -p 1349:1349 --gpus all -v SnapOtter-data:/data snapotter/snapotter:latestMembutuhkan NVIDIA Container Toolkit. Otomatis kembali ke CPU ketika CUDA tidak tersedia. Akselerasi iGPU Intel/AMD melalui VA-API, Quick Sync, atau OpenCL saat ini tidak didukung untuk inferensi AI. Lihat Docker Tags untuk benchmark.
Juga di GHCR
bash
docker run -d --name SnapOtter -p 1349:1349 -v SnapOtter-data:/data ghcr.io/snapotter-hq/snapotter:latestKedua registry mempublikasikan image yang sama pada setiap rilis.
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:Lihat Configuration untuk semua variabel lingkungan.
Membangun dari Sumber
Prasyarat: Node.js 22+, pnpm 9+, Docker (untuk Postgres + Redis), Python 3.10+ (untuk fitur 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- Frontend: http://localhost:1349
- Backend: http://localhost:13490
Apa yang Bisa Anda Lakukan
Pemrosesan File (200+ Perkakas)
| Modalitas | Jumlah | Contoh Perkakas |
|---|---|---|
| Gambar | 105 | Resize, Crop, Compress, Convert, Remove Background, Upscale, OCR, Watermark, Collage, Colorize, GIF Tools, preset format |
| Video | 57 | Trim, Crop, Compress, Convert, Merge, Extract Audio, Auto Subtitles, Video to GIF, Resize, Stabilize, preset format |
| Audio | 27 | Trim, Merge, Convert, Normalize, Noise Reduction, Transcribe, Pitch Shift, Fade, Ringtone Maker, preset format |
| PDF / Dokumen | 42 | Merge, Split, Compress, OCR, Watermark, Redact, Word to PDF, Excel to PDF, Rotate, Protect, Repair |
| File | 10 | CSV to JSON, JSON to XML, Merge CSVs, Split CSV, Create ZIP, Extract ZIP, Chart Maker, YAML/JSON |
Pipeline
Rangkai perkakas menjadi alur kerja multi-langkah dan terapkan ke satu gambar atau seluruh batch:
- Buka Pipelines di sidebar.
- Tambahkan langkah (perkakas apa pun, pengaturan apa pun).
- Jalankan pada satu file, atau seluruh batch sekaligus.
- Simpan pipeline untuk digunakan kembali nanti.
Pipeline mengizinkan 20 langkah secara default. Atur MAX_PIPELINE_STEPS=0 untuk membuat batas tak terbatas.
Pustaka File
Setiap file yang Anda proses dapat disimpan ke pustaka Files Anda. SnapOtter melacak riwayat versi lengkap sehingga Anda dapat menelusuri setiap langkah pemrosesan dari unggahan asli hingga output akhir.
Penyimpanan bersifat eksplisit: hasil yang Anda simpan ke pustaka disimpan hingga Anda menghapusnya, sedangkan hasil yang Anda proses dan biarkan tidak disimpan dihapus otomatis setelah 72 jam (dapat dikonfigurasi melalui FILE_MAX_AGE_HOURS).
REST API & API Key
Setiap perkakas dapat diakses melalui 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"}'Buat API key di bawah Settings → API Keys. Lihat referensi REST API untuk semua endpoint, atau kunjungi http://localhost:1349/api/docs untuk referensi interaktif.
Multi-Pengguna & Tim
Aktifkan beberapa pengguna dengan kontrol akses berbasis peran:
- Admin: akses penuh, kelola pengguna, tim, pengaturan, semua file/pipeline/API key
- Pengguna: gunakan perkakas, kelola file/pipeline/API key sendiri
Buat tim di bawah Settings → Teams untuk mengelompokkan pengguna.
Atur AUTH_ENABLED=true (atau false untuk penggunaan tunggal/pribadi tanpa login).
