Skip to content

Paperless-ngx ​

Connect Crow to Paperless-ngx to search, upload, tag, and organize your digitized documents through your AI assistant. Full-text OCR search included.

What You Get ​

  • Full-text search across all documents (OCR content)
  • Browse and filter by tags, correspondents, and document types
  • Upload new documents for OCR processing
  • Download original or archived versions
  • Manage tags and correspondents
  • Update document metadata

Setup ​

Crow supports two modes for Paperless-ngx: self-hosting via Docker or connecting to an existing instance.

Option A: Docker (self-hosted) ​

Install Paperless-ngx as a Crow bundle. This runs Paperless-ngx in Docker alongside your Crow gateway.

"Crow, install the Paperless bundle"

Or install from the Extensions panel in the Crow's Nest.

After installation, set the database password:

bash
# In your .env file
PAPERLESS_DB_PASSWORD=your-secure-password

Restart the bundle for changes to take effect:

"Crow, restart the Paperless bundle"

Paperless-ngx will be available at http://your-server:8000 for initial setup. Create a superuser account via the web UI, then generate an API token from Administration > Users > Edit > Auth Tokens.

Option B: Connect to existing Paperless-ngx ​

If you already run a Paperless-ngx instance, connect Crow to it directly.

Step 1: Get your API token ​

  1. Open your Paperless-ngx web interface
  2. Go to Administration > Users
  3. Edit your user account
  4. Under Auth Tokens, generate a new token
  5. Copy the token

Step 2: Add to Crow ​

Set the following in your .env file or via Crow's Nest > Settings > Integrations:

bash
PAPERLESS_URL=http://your-paperless-server:8000
PAPERLESS_API_TOKEN=your-api-token-here

AI Tools ​

Once connected, you can interact with Paperless-ngx through your AI:

"Search my documents for tax return"

"Show me all documents tagged 'receipts'"

"Upload this document to Paperless"

"Who are my correspondents?"

"Tag that document as 'insurance'"

Docker Compose Reference ​

If you prefer manual Docker setup instead of the bundle installer:

yaml
services:
  paperless:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    container_name: crow-paperless
    ports:
      - "8000:8000"
    volumes:
      - paperless-data:/usr/src/paperless/data
      - paperless-media:/usr/src/paperless/media
      - paperless-consume:/usr/src/paperless/consume
    environment:
      PAPERLESS_DBHOST: paperless-db
      PAPERLESS_REDIS: redis://paperless-redis:6379
    depends_on:
      - paperless-db
      - paperless-redis
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 1024M

  paperless-db:
    image: postgres:16
    container_name: crow-paperless-db
    volumes:
      - paperless-pgdata:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: paperless
      POSTGRES_USER: paperless
      POSTGRES_PASSWORD: ${PAPERLESS_DB_PASSWORD}
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 256M

  paperless-redis:
    image: redis:7-alpine
    container_name: crow-paperless-redis
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 128M

volumes:
  paperless-data:
  paperless-media:
  paperless-consume:
  paperless-pgdata:

Troubleshooting ​

"Connection refused" or timeout ​

Make sure the PAPERLESS_URL is reachable from the machine running Crow. If Paperless-ngx is on a different machine, use the correct IP or hostname.

"401 Unauthorized" or invalid token ​

The API token may have been deleted or expired. Regenerate a new token from the Paperless-ngx admin panel under Administration > Users > Edit > Auth Tokens.

OCR not working on uploaded documents ​

Check your language packs in the Paperless-ngx settings. By default, only English is installed. Add additional OCR languages from Settings > OCR in the Paperless-ngx web UI.

Upload failing ​

Check that the consume directory has the correct permissions. The Paperless-ngx container needs write access to the consume volume.

Released under the MIT License.