This page was machine-translated. Spotted a mistake?Help improve it.
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 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-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 kutuda 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ç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.