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.
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 |
|---|---|---|---|---|
| SnapOtter'ı Docker ile tek komutla kurun. Docker Compose kurulumu, kaynaktan derleme ve tam özellik genel bakışı içerir. | 8040133a6982 | machine | aea71ee46492 | 2 |
Başlarken
::: tip Kurmadan önce deneyin Tam arayüzü demo.snapotter.com adresinde keşfedin - kayıt veya kurulum gerektirmez. :::
Hızlı Başlangıç
docker run -d --name SnapOtter -p 1349:1349 -v SnapOtter-data:/data snapotter/snapotter:latest
Bu tek konteyner ihtiyaç duyduğu her şeyi çalıştırır: DATABASE_URL ayarlanmadan, geridöngü arayüzünde (gömülü mod) kendi PostgreSQL ve Redis'ini başlatır ve tüm verileri SnapOtter-data biriminde tutar. SnapOtter'yi denemenin veya bir ev laboratuvarında kendi kendine barındırmanın en hızlı yoludur. Üretim için PostgreSQL ve Redis'i kendi kapsayıcılarında tutan canonical Docker Compose yığınını kullanın. Katıştırılmış mod, kök (varsayılan) olarak çalışır ve DATABASE_URL'yi ayarladığınız anda otomatik olarak kapanır.
Bir Raspberry Pi'ye, eski bir dizüstüne veya küçük bir VPS'e mi kuruyorsunuz? Ayarlanmış adım adım kurulum ve kısıtlı donanımdan neler bekleyeceğiniz için Düşük Kaynaklı Kurulumlar bölümüne bakın.
İlk oturum açmada parolanızı değiştirmeniz istenecektir.
::: tip Anonim Ürün Analitiği SnapOtter varsayılan olarak anonim ürün analitiği içerir. Kapatmak için Settings → System → Privacy bölümünü açın ve Anonymous Product Analytics'i kapatın. Tüm örnek için hemen durur.
Örnek için tüm telemetriyi yeniden derleme olmadan devre dışı bırakmak için SNAPOTTER_TELEMETRY=0 ortam değişkenini de ayarlayabilirsiniz (false ve off da işe yarar).
Hata izleme, açık kaynak programı aracılığıyla SnapOtter'a sponsor olan Sentry tarafından desteklenmektedir.
Nelerin toplandığına ilişkin ayrıntılar için SnapOtter'ın topladıkları bölümüne bakın. :::
::: tip NVIDIA CUDA hızlandırması
NVIDIA CUDA ile hızlandırılmış arka plan kaldırma, ölçeklendirme, yüz geliştirme ve restorasyon için --gpus all ekleyin. OCR CPU tabanlı kalır ve GPU erişimi olsun veya olmasın aynı görüntüde çalışır:
docker run -d --name SnapOtter -p 1349:1349 --gpus all -v SnapOtter-data:/data snapotter/snapotter:latest
NVIDIA Container Toolkit gerektirir. CUDA kullanılamadığında otomatik olarak CPU'ya geri döner. VA-API, Quick Sync veya OpenCL aracılığıyla Intel/AMD iGPU hızlandırma, günümüzde yapay zeka çıkarımı için desteklenmemektedir. Karşılaştırmalar için Docker Etiketleri konusuna bakın. AI araçları --gpus all'ye rağmen CPU üzerinde çalışıyorsa, bkz. GPU hızlandırmasını doğrulama.
:::
::: details GHCR'de de mevcut
docker run -d --name SnapOtter -p 1349:1349 -v SnapOtter-data:/data ghcr.io/snapotter-hq/snapotter:latest
Her iki kayıt defteri de her sürümde aynı imajı yayınlar. :::
Docker Oluşturma
Bu sayfadaki kısaltılmış bir Oluşturma örneğini kopyalamak yerine, her sürümde bakımı yapılan ve test edilen üretim dosyasını kullanın:
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
Kurallı docker/docker-compose.yml dört çalışma zamanı biriminin tümünü, durum denetimlerini, kaynak sınırlarını, dayanıklı Redis yapılandırmasını, sabitlenmiş veritabanı/önbellek görüntülerini ve geçerli kapsayıcı güçlendirmeyi içerir. İlk girişten hemen sonra varsayılan yönetici şifresini değiştirin. Tekrarlanabilir bir dağıtım için latest'yi takip etmek yerine SnapOtter uygulama görüntüsünü doğruladığınız sürüm etiketine veya özete sabitleyin.
Tüm ortam değişkenleri için Yapılandırma'ya ve gizli diziler, ağ politikası ve yedekleme kılavuzu için Güvenlik ve Güçlendirme'ye bakın.
Kaynaktan Derleme
Ön koşullar: Node.js 22.22+, pnpm 9+, Docker (Postgres + Redis için), Python 3.11+ (AI özellikleri için), 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
- Ön yüz: http://localhost:1351
- Arka uç: http://localhost:13490
Neler Yapabilirsiniz
Dosya İşleme (200+ Araç)
| Modalite | Sayı | Örnek Araçlar |
|---|---|---|
| Görsel | 107 | Yeniden Boyutlandır, Kırp, Sıkıştır, Dönüştür, Arka Planı Kaldır, Ölçek Büyüt, OCR, Filigran, Kolaj, Renklendir, GIF Araçları, format ön ayarları |
| Video | 57 | Kırp, Kes, Sıkıştır, Dönüştür, Birleştir, Ses Çıkar, Otomatik Altyazılar, Video'dan GIF'e, Yeniden Boyutlandır, Sabitle, format ön ayarları |
| Ses | 27 | Kırp, Birleştir, Dönüştür, Normalleştir, Gürültü Azaltma, Transkribe Et, Perde Kaydırma, Kısılma, Zil Sesi Oluşturucu, format ön ayarları |
| PDF / Belge | 29 | Birleştir, Böl, Sıkıştır, OCR, Filigran, Sansürle, Word'den PDF'e, Excel'den PDF'e, Döndür, Koru, Onar |
| Dosyalar | 23 | CSV'den JSON'a, JSON'dan XML'e, CSV'leri Birleştir, CSV Böl, ZIP Oluştur, ZIP Çıkar, Grafik Oluşturucu, YAML/JSON |
Ardışık Düzenler
Araçları çok adımlı iş akışlarına zincirleyin ve bunları tek bir görsele veya bütün bir gruba uygulayın:
- Kenar çubuğunda Pipelines bölümünü açın.
- Adımlar ekleyin (herhangi bir araç, herhangi bir ayar).
- Tek bir dosyada veya bir kerede bütün bir grupta çalıştırın.
- Daha sonra yeniden kullanmak için ardışık düzeni kaydedin.
Ardışık düzenler varsayılan olarak 20 adıma izin verir. Limiti sınırsız yapmak için MAX_PIPELINE_STEPS=0 ayarlayın.
Dosya Kitaplığı
İşlediğiniz her dosya Files kitaplığınıza kaydedilebilir. SnapOtter tam sürüm geçmişini izler, böylece orijinal yüklemeden son çıktıya kadar her işleme adımını takip edebilirsiniz.
Kaydetme açıktır: kitaplığa kaydettiğiniz sonuçlar siz silene kadar tutulurken, işleyip kaydetmeden bıraktığınız sonuçlar 72 saat sonra otomatik olarak temizlenir (FILE_MAX_AGE_HOURS aracılığıyla yapılandırılabilir).
REST API ve API Anahtarları
Her araca HTTP üzerinden erişilebilir:
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"}'
Settings → API Keys altında API anahtarları oluşturun. Tüm uç noktalar için REST API referansına bakın veya etkileşimli referans için http://localhost:1349/api/docs adresini ziyaret edin.
Çok Kullanıcı ve Ekipler
Rol tabanlı erişim kontrolü ile birden fazla kullanıcıyı etkinleştirin:
- Yönetici: tam erişim - kullanıcıları, ekipleri, ayarları, tüm dosyaları/ardışık düzenleri/API anahtarlarını yönetir
- Kullanıcı: araçları kullanır, kendi dosyalarını/ardışık düzenlerini/API anahtarlarını yönetir
Kullanıcıları gruplamak için Settings → Teams altında ekipler oluşturun.
AUTH_ENABLED=true ayarlayın (veya oturum açma olmadan tek kullanıcı/kendi kullanımı için false).