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.
Servicios Incluidos
paperless
ghcr.io/paperless-ngx/paperless-ngx:latest
Variables de Entorno:
postgres
postgres:16-alpine
Variables de Entorno:
redis
redis:7-alpine
YAML Generado
# 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
Información Rápida
- Servicios
- 3
- Redes
- 1
- Volúmenes
- 6
Cuándo Usar
Esta plantilla es ideal para configurar un entorno de paperless-ngx Todos los servicios vienen preconfigurados con healthchecks, límites de recursos y valores por defecto sensatos. Personaliza las variables de entorno antes de desplegar en producción.
Consejos
- Cambia todas las contraseñas por defecto antes de desplegar
- Revisa los límites de recursos para tu hardware
- Añade un proxy inverso para HTTPS en producción
- Configura estrategias de respaldo para los volúmenes de datos