services: # ── Broker ────────────────────────────────────────────────────────────────── broker: image: docker.io/library/redis:7 container_name: paperless-broker restart: unless-stopped volumes: - /mnt/dokploy-volumes/paperless/redisdata:/data # ── Paperless-ngx ──────────────────────────────────────────────────────────── webserver: image: dokploy/paperless-ngx build: dockerfile: ./Dockerfile container_name: paperless-webserver restart: unless-stopped depends_on: - broker ports: - "8000" volumes: - /mnt/dokploy-volumes/paperless/data:/usr/src/paperless/data - /mnt/dokploy-volumes/paperless/media:/usr/src/paperless/media - /mnt/dokploy-volumes/paperless/export:/usr/src/paperless/export - /mnt/dokploy-volumes/paperless/consume:/usr/src/paperless/consume environment: PAPERLESS_REDIS: redis://broker:6379 USERMAP_UID: 1000 USERMAP_GID: 1000 # ── External Postgres ──────────────────────────────────────────────────── PAPERLESS_DBENGINE: ${PAPERLESS_DBENGINE} PAPERLESS_DBHOST: ${PAPERLESS_DBHOST} # your docker-1 IP or hostname PAPERLESS_DBPORT: ${PAPERLESS_DBPORT} PAPERLESS_DBNAME: ${PAPERLESS_DBNAME} PAPERLESS_DBUSER: ${PAPERLESS_DBUSER} PAPERLESS_DBPASS: ${PAPERLESS_DBPASS} # ── General ────────────────────────────────────────────────────────────── PAPERLESS_URL: ${PAPERLESS_URL} PAPERLESS_SECRET_KEY: ${PAPERLESS_SECRET_KEY} PAPERLESS_TIME_ZONE: ${PAPERLESS_TIME_ZONE} PAPERLESS_OCR_LANGUAGE: ${PAPERLESS_OCR_LANGUAGE} PAPERLESS_ADMIN_USER: ${PAPERLESS_ADMIN_USER} PAPERLESS_ADMIN_PASSWORD: ${PAPERLESS_ADMIN_PASSWORD} # change on first run PAPERLESS_ADMIN_MAIL: ${PAPERLESS_ADMIN_MAIL} extra_hosts: - "docker-1:10.10.20.11" # optional, helps with DNS hairpin # ── Paperless-AI ───────────────────────────────────────────────────────────── paperless-ai: image: clusterpilot/paperless-ai:latest container_name: paperless-ai restart: unless-stopped depends_on: - webserver ports: - "3000" volumes: - /mnt/dokploy-volumes/paperless/paperless-ai-data:/app/data environment: PAPERLESS_API_URL: http://webserver:8000/api PAPERLESS_API_TOKEN: ${PAPERLESS_API_TOKEN} # fill after first Paperless login # Option A: OpenAI AI_PROVIDER: ${AI_PROVIDER} OPENAI_API_KEY: ${OPENAI_API_KEY} OPENAI_MODEL: ${OPENAI_MODEL} # Option B: Ollama (local) # AI_PROVIDER: ollama # OLLAMA_API_URL: http://ollama:11434 # OLLAMA_MODEL: llama3 PROCESS_PREDEFINED_DOCUMENTS: "yes" ADD_AI_PROCESSED_TAG: "yes" AUTO_DETECT_LANGUAGE: "yes" SCAN_INTERVAL: "*/30 * * * *"