# PIHA-specific overrides for paperless (KB module 2). # # RESOURCE CONTEXT: PIHA is the RAM-bound 8 GB box shared with Home Assistant # and monitoring. Precondition for this service is KB module 0 (piha-slim); # after it ~3.8 Gi should be available. Ceilings below keep the whole stack # ≤ ~1.9 Gi worst-case so paperless can never starve HA — the cgroup OOM # killer restarts the offending container instead of the host killer picking # a victim. services: paperless: # Idle expectation ~400–600 Mi (gunicorn + consumer + beat + 1 celery # worker). The ceiling leaves room for the concurrency-1 FALLBACK OCR of # a large PDF when SOLARIA is asleep; a pathological document gets the # container restarted rather than the host swapping. mem_limit: 1400m mem_reservation: 512m db: # Metadata-only DB (documents live on disk, not in Postgres). Same tuning # philosophy as kb-postgres but smaller: bounded backends because the # SOLARIA worker also holds connections (concurrency 4 + webserver pool). mem_limit: 384m command: - "postgres" - "-c" - "shared_buffers=96MB" - "-c" - "effective_cache_size=256MB" - "-c" - "work_mem=4MB" - "-c" - "maintenance_work_mem=32MB" - "-c" - "max_connections=50" broker: # Task payloads are tiny (paths + ids): even the 70k-attachment backlog # is ~tens of MB in-queue. NO maxmemory/eviction — evicting broker keys # would silently drop queued OCR tasks; if the limit is ever hit the # container restarts and recovers the queue from AOF instead. mem_limit: 256m