Search K
Düşük Kaynaklı Kurulumlar
SnapOtter küçük donanımda iyi çalışır: bir Raspberry Pi 4 veya 5, eski bir dizüstü bilgisayar ya da 2 GB'lık bir VPS. Bu sayfa, bu makineler için pratik kılavuzdur: neler beklemeniz gerektiği, makul sınırlarla kopyala-yapıştır bir kurulum ve hangi özelliklerin atlanacağı. Bu sayıların arkasındaki tam kıyaslama verileri Donanım Gereksinimleri bölümündedir.
Baştan iki kesin kısıt:
- Yalnızca 64 bit. İmaj
linux/amd64velinux/arm64için derlenir. 32 bit ARM (armv7/armhf) desteklenmez; bu yüzden birinci nesil Pi'ler ve Pi Zero ailesi devre dışıdır. - 2 GB bellek tabanı. 512 MB yığını başlatamaz, 1 GB ise çok dosyalı toplu işlerde başarısız olur. Rahat çalışan en küçük yapılandırma 2 çekirdekli 2 GB'dir.
Küçük donanımda neler iyi çalışır
AI olmayan her araç 2 GB / 2 çekirdekli bir makinede çalışır: Görsel ve Dosyalar bölümlerinin tamamı, PDF araçları ve stream copy ile yapılan video ve ses işlemleri (kırpma, sesi kapatma, kapsayıcı değişimi). Çoğu bir saniyenin altında tamamlanır.
İki iş yükü istisnadır:
- Videoyu yeniden kodlama (codec'ler arasında dönüştürme) CPU'ya bağlıdır. Hızlı bir masaüstü CPU'sunda ~40 sn süren bir 1080p klip, Pi sınıfı bir CPU'da birkaç dakika sürebilir. Stream copy işlemleri anlık kalır.
- AI araçları RAM (4 GB önerilir) ve disk ister (büyük paketlerin her biri 4-5 GB'dir) ve ağır olanlar (ölçeklendirme, fotoğraf restorasyonu, arka plan kaldırma) Pi sınıfı CPU'larda pratik değildir. Yüz algılama ve OCR gibi hafif AI, belleğiniz yetiyorsa kullanılabilir.
İkisi de siz kullanmadıkça kurulmaz ve çalışmaz: hiçbir AI paketi kurulu değilken uygulama boşta yaklaşık 360 MB kullanır ve AI paketleri yalnızca bir yönetici etkinleştirdiğinde indirilir.
Raspberry Pi / eski dizüstü için adım adım kurulum
Bu, Başlarken bölümündeki standart Compose kurulumunun kaynak limitleri ve temkinli sınırlar eklenmiş hâlidir. 64 bit bir işletim sistemi varsayar (bir Pi'de: Raspberry Pi OS 64-bit veya Ubuntu Server arm64).
yaml
services:
snapotter:
image: snapotter/snapotter:latest
ports:
- "1349:1349"
volumes:
- ./snapotter-data:/data
environment:
- DATABASE_URL=postgres://snapotter:snapotter@db:5432/snapotter
- REDIS_URL=redis://redis:6379
# Small-box profile: see the table below for what each cap does.
- CONCURRENT_JOBS=1
- MAX_WORKER_THREADS=2
- MAX_BATCH_SIZE=5
- MAX_UPLOAD_SIZE_MB=100
- MAX_MEGAPIXELS=50
- MAX_VIDEO_DURATION_S=300
deploy:
resources:
limits:
cpus: "2"
memory: 2G
depends_on:
- db
- redis
restart: unless-stopped
db:
image: postgres:17-alpine
environment:
- POSTGRES_USER=snapotter
- POSTGRES_PASSWORD=snapotter
- POSTGRES_DB=snapotter
volumes:
- ./postgres-data:/var/lib/postgresql/data
restart: unless-stopped
redis:
image: redis:8-alpine
command: redis-server --maxmemory 256mb --maxmemory-policy noeviction
restart: unless-stoppedPi sınıfı makineler için notlar:
- SD kart yerine bir USB SSD tercih edin; veri birimi ve Postgres bunun üzerinde dursun. İş çalışma alanları gerçek disk G/Ç'si yapar ve SD kartlar hem yavaştır hem de çabuk aşınır.
- Hepsi bir arada tek konteyner burada da çalışır (
DATABASE_URL/REDIS_URLayarlanmadığında gömülü Postgres ve Redis) ve belleği kısıtlı bir ana makinede gömülü Redis sınırınıREDIS_MAXMEMORYile düşürmelisiniz (bkz. Yapılandırma). Compose servis başına daha ince denetim sağlar; bu kılavuzun Compose kullanmasının nedeni de budur. - 2 GB'lık cihazlara swap ekleyin. Bu, ara sıra oluşan bir sıçramanın (büyük bir PDF, sınırlamayı unuttuğunuz bir toplu iş) bellek yetersizliğinden süreç sonlandırmayla bitmesini önler. zram, SD kart dostu seçenektir.
- arm64 imajı yalnızca CPU içindir; ARM kartlarda CUDA yoktur.
Ayar düğmeleri
Tüm sınırlar ortam değişkenleridir ve Yapılandırma bölümünde eksiksiz belgelenmiştir. 0 sınırsız veya otomatik anlamına gelir. Küçük donanımda önemli olanlar:
| Değişken | Küçük makine önerisi | Neyi korur |
|---|---|---|
CONCURRENT_JOBS | 1 | Kaç işin paralel çalıştığı. Otomatik algılama CPU çekirdek sayısının bir eksiğini kullanır; bu büyük makinelerde iyidir, bellek baskısı altındaki 2 çekirdekli bir kutuda ise fazla isteklidir. |
MAX_WORKER_THREADS | 2 | Görüntü işleme iş parçacığı havuzu. |
MAX_BATCH_SIZE | 5 | 1-2 GB'lık makinelerin belleği ilk önce toplu işlerde tükenir. |
MAX_UPLOAD_SIZE_MB | 100 | Tek bir devasa dosyanın tüm çalışma alanını kaplamasını önler. |
MAX_MEGAPIXELS | 50 | 100+ MP bir görseli çözmek, dosya boyutundan bağımsız olarak RAM'e mal olur. |
MAX_VIDEO_DURATION_S | 300 | Uzun dönüştürmeler küçük bir CPU'yu dakikalarca, hatta saatlerce meşgul eder. |
PROCESSING_TIMEOUT_S | 600 | Kontrolden çıkan bir işin makineyi eninde sonunda serbest bırakması için kesin tavan. |
Bu sınırlar sunucunun neyi kabul ettiğini belirler; bu yüzden onları olabildiğince küçük değil, gerçekten kullandığınız şeye göre ayarlayın. Videoya hiç dokunmuyorsanız bir MAX_VIDEO_DURATION_S sınırının maliyeti yoktur; her gün belge tarıyorsanız MAX_PDF_PAGES değişkenine sınır koymayın.
Nelerden vazgeçmeli
- Ağır AI paketleri. Ölçeklendirme, fotoğraf restorasyonu ve arka plan kaldırma bir GPU veya çok çekirdekli hızlı bir CPU ister ve her paket 4-5 GB disk kaplar. Küçük bir makinede bunları kurmamanız yeterlidir; paketi eksik olan araçlar çalışmak yerine bir kurulum istemi gösterir.
- Rutin iş yükü olarak video yeniden kodlama. Ara sıra dönüştürme sorun değildir (yalnızca yavaştır); sürekli bir dönüştürme kuyruğu CPU çekirdeği ister, Pi değil.
- Genel olarak kullanılmayan araçlar. Bir yönetici Settings içinden tek tek araçları kapatabilir; bu, onları arayüzden kaldırır ve API rotalarının kaydını durdurur. Bu tek başına bellek kazandırmaz, ancak paylaşılan küçük bir örneğin donanımın kaldıramayacağı o tek iş yükü için kullanılmasını engeller.
Örneği daha sonra daha büyük bir donanıma taşırsanız sınırları kaldırın (0 değerine geri alın); aynı veri birimi olduğu gibi taşınır.
