Bu sayfa makine çevirisidir. Bir hata mı fark ettiniz?İyileştirmemize yardım edin.
Skip to content

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/amd64 ve linux/arm64 iç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-stopped

Pi 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_URL ayarlanmadığı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_MAXMEMORY ile 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şkenKüçük makine önerisiNeyi korur
CONCURRENT_JOBS1Kaç 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_THREADS2Görüntü işleme iş parçacığı havuzu.
MAX_BATCH_SIZE51-2 GB'lık makinelerin belleği ilk önce toplu işlerde tükenir.
MAX_UPLOAD_SIZE_MB100Tek bir devasa dosyanın tüm çalışma alanını kaplamasını önler.
MAX_MEGAPIXELS50100+ MP bir görseli çözmek, dosya boyutundan bağımsız olarak RAM'e mal olur.
MAX_VIDEO_DURATION_S300Uzun dönüştürmeler küçük bir CPU'yu dakikalarca, hatta saatlerce meşgul eder.
PROCESSING_TIMEOUT_S600Kontrolden çı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.