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.
Services Inclus
paperless
ghcr.io/paperless-ngx/paperless-ngx:latest
Variables d'Environnement :
postgres
postgres:16-alpine
Variables d'Environnement :
redis
redis:7-alpine
YAML Généré
# 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
Informations Rapides
- Services
- 3
- Réseaux
- 1
- Volumes
- 6
Quand l'Utiliser
Ce modèle est idéal pour mettre en place un environnement paperless-ngx Tous les services sont préconfigurés avec des healthchecks, des limites de ressources et des valeurs par défaut raisonnables. Personnalisez les variables d'environnement avant de déployer en production.
Conseils
- Changez tous les mots de passe par défaut avant le déploiement
- Vérifiez les limites de ressources pour votre matériel
- Ajoutez un reverse proxy pour le HTTPS en production
- Configurez des stratégies de sauvegarde pour les volumes de données