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 oluşturulur. 32 bit ARM (armv7/armhf) desteklenmez; bu yüzden birinci nesil Pi'ler ve Pi Zero ailesi devre dışıdır. - 2 GB bellek alt sınırı. 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çek büyütme, 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 makinede 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çek büyütme, 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.
