Paperless-ngx
Paperless-ngx is a community-supported, open-source document management system that transforms your physical documents into a searchable online archive. It performs OCR on scanned documents using Tesseract, provides full-text search, automatic tagging via machine learning, and organizes documents with correspondents, document types, and custom metadata. This stack deploys Paperless-ngx with PostgreSQL 16 for document metadata storage and Redis 7 for task queuing and caching. Paperless-ngx supports consuming documents from email, SFTP, or a watched folder, outputs PDF/A for long-term archival, and provides a responsive web interface with dark mode. It handles PDF, images, Office documents, and many other formats with barcode-based document splitting and ASN (archive serial number) assignment. After deployment, access the web UI on port 8000 and create your superuser account. Then start uploading or scanning documents to build your digital archive.
Servizi Inclusi
paperless
ghcr.io/paperless-ngx/paperless-ngx:latest
Variabili d'Ambiente:
postgres
postgres:16-alpine
Variabili d'Ambiente:
redis
redis:7-alpine
YAML Generato
# Generated by ComposeHub (composehub.dev)
name: paperless
services:
paperless:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
restart: always
ports:
- 8000:8000
volumes:
- paperless_data:/usr/src/paperless/data
- paperless_media:/usr/src/paperless/media
- paperless_export:/usr/src/paperless/export
- paperless_consume:/usr/src/paperless/consume
environment:
PAPERLESS_REDIS: redis://redis:6379
PAPERLESS_DBHOST: postgres
PAPERLESS_DBPORT: "5432"
PAPERLESS_DBNAME: ${POSTGRES_DB:-paperless}
PAPERLESS_DBUSER: ${POSTGRES_USER:-paperless}
PAPERLESS_DBPASS: ${POSTGRES_PASSWORD:-changeme}
PAPERLESS_SECRET_KEY: ${PAPERLESS_SECRET_KEY:-changeme-generate-a-long-random-string}
PAPERLESS_URL: ${PAPERLESS_URL:-http://localhost:8000}
PAPERLESS_ADMIN_USER: ${PAPERLESS_ADMIN_USER:-admin}
PAPERLESS_ADMIN_PASSWORD: ${PAPERLESS_ADMIN_PASSWORD:-changeme}
PAPERLESS_ADMIN_MAIL: ${PAPERLESS_ADMIN_MAIL:[email protected]}
PAPERLESS_OCR_LANGUAGE: ${PAPERLESS_OCR_LANGUAGE:-eng}
PAPERLESS_TIME_ZONE: ${TZ:-UTC}
PAPERLESS_TIKA_ENABLED: ${PAPERLESS_TIKA_ENABLED:-false}
USERMAP_UID: ${USERMAP_UID:-1000}
USERMAP_GID: ${USERMAP_GID:-1000}
networks:
- paperless
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
healthcheck:
test:
- CMD-SHELL
- curl -f http://localhost:8000 || exit 1
interval: 30s
timeout: 10s
retries: 5
start_period: 60s
deploy:
resources:
limits:
cpus: "2.00"
memory: 2048M
reservations:
cpus: "0.50"
memory: 512M
labels:
com.composehub.description: Paperless-ngx document management system with OCR
postgres:
image: postgres:16-alpine
restart: always
volumes:
- paperless_db:/var/lib/postgresql/data
environment:
POSTGRES_DB: ${POSTGRES_DB:-paperless}
POSTGRES_USER: ${POSTGRES_USER:-paperless}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme}
networks:
- paperless
healthcheck:
test:
- CMD-SHELL
- pg_isready -U ${POSTGRES_USER:-paperless} -d ${POSTGRES_DB:-paperless}
interval: 5s
timeout: 5s
retries: 10
start_period: 30s
deploy:
resources:
limits:
cpus: "1.00"
memory: 512M
reservations:
cpus: "0.25"
memory: 128M
labels:
com.composehub.description: PostgreSQL 16 database for Paperless-ngx
redis:
image: redis:7-alpine
restart: always
command:
- redis-server
- "--save"
- "20"
- "1"
- "--loglevel"
- warning
- "--maxmemory"
- 256mb
- "--maxmemory-policy"
- allkeys-lru
volumes:
- paperless_redis:/data
networks:
- paperless
healthcheck:
test:
- CMD-SHELL
- redis-cli ping | grep PONG
interval: 5s
timeout: 5s
retries: 10
start_period: 10s
deploy:
resources:
limits:
cpus: "0.50"
memory: 320M
reservations:
cpus: "0.10"
memory: 64M
labels:
com.composehub.description: Redis 7 for Paperless-ngx task queue and caching
networks:
paperless:
driver: bridge
volumes:
paperless_data:
driver: local
paperless_media:
driver: local
paperless_export:
driver: local
paperless_consume:
driver: local
paperless_db:
driver: local
paperless_redis:
driver: local
Informazioni Rapide
- Servizi
- 3
- Reti
- 1
- Volumi
- 6
Quando Usarlo
Questo template è ideale per configurare un ambiente paperless-ngx Tutti i servizi sono preconfigurati con healthchecks, limiti di risorse e valori predefiniti sensati. Personalizza le variabili d'ambiente prima di fare il deploy in produzione.
Consigli
- Cambia tutte le password predefinite prima del deploy
- Verifica i limiti di risorse per il tuo hardware
- Aggiungi un reverse proxy per HTTPS in produzione
- Configura strategie di backup per i volumi di dati