diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..e708b15 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,79 @@ +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: registry.web.lesko.me/dokploy/build-paperless-tzh6vl + 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 * * * *"