2026-03-20 23:38:10 +00:00
2026-02-13 21:01:04 +00:00
2026-03-20 23:38:08 +00:00
2025-04-02 03:19:36 +02:00

DocuElevate Logo

Intelligent Document Processing & Management

DocuElevate

codecov CI Pipeline CodeQL

GitHub release (latest by date) GitHub Python Version Docker

GitHub stars GitHub forks GitHub issues GitHub pull requests

DocuElevate Hero

Overview

DocuElevate is an intelligent document processing system that automates the ingestion, OCR, AI-powered metadata extraction, and distribution of documents. It supports a wide range of AI providers, OCR engines, and cloud storage destinations out of the box.

Key capabilities:

  • AI-Powered Metadata Extraction — pluggable AI providers including OpenAI, Anthropic Claude, Google Gemini, Ollama (local), OpenRouter, Portkey, and Azure OpenAI via LiteLLM
  • Multi-Engine OCR — Azure Document Intelligence, Tesseract, EasyOCR, Mistral OCR, Google Cloud Document AI, and AWS Textract with configurable merge strategies
  • 12 Storage Destinations — Dropbox, Google Drive, OneDrive, Amazon S3, Nextcloud, WebDAV, FTP, SFTP, iCloud Drive, Email (SMTP), Paperless-ngx, and Rclone
  • Multi-Channel Ingestion — web upload, browser extension, mobile app, CLI, REST API, IMAP email, and watched folders (local, cloud, FTP/SFTP)
  • Processing Pipelines — customizable multi-step workflows with conditional routing rules
  • Full-Text Search — powered by Meilisearch for instant document discovery
  • Multi-User with SSO — local accounts, OAuth2/OIDC (Authentik), and social login (Google, Microsoft, Apple, Dropbox)

The project ships with a web UI, a REST + GraphQL API, a CLI tool, a native mobile app (iOS & Android), a browser extension, and Helm charts for Kubernetes deployment.

Screenshots

DocuElevate Upload Interface

Upload interface — drag-and-drop file upload with real-time progress

DocuElevate Files View

Files view — processed documents with AI-extracted metadata

DocuElevate Status View

Status view — system health and service monitoring

Note: Screenshots may not reflect the very latest UI. For the most current look, visit docuelevate.org.

Workflow

DocuElevate Workflow

Ingestion

Documents enter DocuElevate through multiple channels:

Channel Description
Web Upload Drag-and-drop interface with real-time progress (up to 1 GB per file)
Browser Extension Clip web pages or send files from Chrome, Firefox, or Edge
Mobile App Capture documents with the device camera or upload from the photo library
CLI Batch uploads and scripted workflows via the docuelevate command-line tool
REST API Programmatic uploads with full API-token authentication
Email (IMAP) Automatic polling of multiple mailboxes with attachment filtering
Watched Folders Monitor local paths, FTP, SFTP, S3, Dropbox, Google Drive, OneDrive, Nextcloud, or WebDAV for new files

Processing Pipeline

Each document passes through a configurable set of steps:

  1. PDF Conversion — Non-PDF files are converted using Gotenberg, with optional PDF/A archival conversion
  2. OCR — Text extraction via one or more OCR engines (Azure, Tesseract, EasyOCR, Mistral, Google Document AI, AWS Textract) with configurable merge strategies
  3. AI Metadata Extraction — The configured AI provider classifies the document and extracts structured metadata (type, dates, amounts, entities)
  4. Enrichment — Metadata is embedded into the PDF and stored alongside the document
  5. Embedding Generation — Vector embeddings for similarity search and duplicate detection

Steps can be customized using Pipelines and Routing Rules for conditional processing.

Distribution

Processed documents are distributed to any combination of configured destinations:

Destination Type
Dropbox Cloud storage
Google Drive Cloud storage
OneDrive Cloud storage
Amazon S3 Object storage
Nextcloud Self-hosted cloud
WebDAV Protocol-based
FTP / SFTP File transfer
iCloud Drive Apple cloud
Email (SMTP) Send as attachment
Paperless-ngx Document management system
Rclone 70+ cloud providers via Rclone

Features

Document Processing

  • Multi-engine OCR with quality checks and configurable merge strategies (AI merge, longest, primary)
  • AI metadata extraction using any supported provider (OpenAI, Anthropic, Gemini, Ollama, OpenRouter, Portkey, Azure OpenAI)
  • PDF conversion via Gotenberg with optional PDF/A archival format
  • Duplicate detection — exact (SHA-256) and near-duplicate (content similarity with vector embeddings)
  • Customizable pipelines — define multi-step processing workflows with conditional routing rules

Document Management

  • Full-text search powered by Meilisearch with saved searches
  • File detail view with metadata, text preview, processing history, and similarity analysis
  • Shared links for public document access with expiration controls
  • Bulk operations — reprocess, delete, or reassign documents in batch

Multi-Channel Ingestion

  • Web UI — drag-and-drop upload with real-time progress
  • Browser extension — clip web pages or send files from Chrome, Firefox, Edge (guide)
  • Mobile app — iOS and Android with camera capture, push notifications, and SSO (guide)
  • CLI tool — batch uploads, downloads, search, and API-token management (guide)
  • REST API & GraphQL — full programmatic access with Swagger documentation at /docs
  • IMAP email — poll multiple mailboxes with attachment filtering and auto-processing
  • Watched folders — local filesystem, FTP, SFTP, and cloud storage providers

Administration

  • Multi-user mode with per-user document isolation and ownership
  • Subscription & billing — Stripe integration with configurable plans and quotas
  • Scheduled jobs — IMAP polling, watched folder scans, automated backups, uptime monitoring
  • Audit logging with SIEM integration support
  • Compliance templates — GDPR, HIPAA, SOC 2
  • Admin dashboard — user management, queue monitoring, credential management, backup/restore

Authentication & Security

  • Local accounts with self-service registration and password reset
  • OAuth2/OIDC via Authentik or any OIDC provider
  • Social login — Google, Microsoft, Apple, Dropbox
  • API tokens for CLI, mobile, and automation access
  • Security headers — HSTS, CSP, X-Frame-Options, X-Content-Type-Options
  • Rate limiting with configurable per-endpoint controls

Notifications

  • 100+ notification backends via Apprise — Discord, Telegram, Slack, Microsoft Teams, Email, webhooks, and more
  • Configurable events — task failures, credential issues, file processed, user signup, payment issues
  • In-app notification inbox with per-user preferences
  • Webhooks — push events to external systems with HMAC signature verification and retry

Tech Stack

Component Technology
Backend FastAPI, Celery, Redis, SQLAlchemy, Alembic
Frontend Jinja2, Tailwind CSS
Search Meilisearch
Mobile React Native (Expo) — iOS & Android
AI LiteLLM (OpenAI, Anthropic, Gemini, Ollama, OpenRouter, Portkey)
OCR Azure Document Intelligence, Tesseract, EasyOCR, Mistral, Google Doc AI, AWS Textract
PDF Gotenberg, pypdf
Auth Authlib (OAuth2/OIDC), MSAL, social providers
Infrastructure Docker, Docker Compose, Helm/Kubernetes
Docs MkDocs Material

Quick Start

For detailed installation and deployment instructions, see the Deployment Guide.

# Clone the repository
git clone https://github.com/christianlouis/DocuElevate.git
cd DocuElevate

# Configure environment variables
cp .env.demo .env
# Edit .env with your settings (see Configuration Guide for all options)

# Run with Docker Compose
docker compose up -d

The web UI is available at http://localhost:8000 and the interactive API documentation at http://localhost:8000/docs.

Kubernetes / Helm

helm repo add docuelevate https://christianlouis.github.io/DocuElevate
helm install docuelevate docuelevate/docuelevate -f values.yaml

See the Kubernetes Deployment Guide for full details.

Documentation

Getting Started

Guide Description
Setup Wizard Interactive first-run setup
User Guide How to use DocuElevate
Browser Extension Install and use the browser extension
Mobile App iOS and Android mobile app
CLI Guide Command-line tool for automation

How-To Guides

Guide Description
How-To Overview Index of all how-to guides
Email Ingestion Set up IMAP email polling
Watched Folder Monitor local or remote folders
Mobile Scanning Scan documents with your phone

Reference

Guide Description
API Documentation REST & GraphQL API reference
Configuration Guide All environment variables
Configuration Master Configuration overview
Settings Management Runtime settings UI

Deployment & Operations

Guide Description
Deployment Guide Docker Compose deployment
Kubernetes / Helm Kubernetes deployment with Helm charts
Production Readiness Checklist for production environments
Database Configuration Database setup and migration
Backup & Restore Automated backup configuration

Storage Integration Setup

Guide Description
Dropbox Dropbox OAuth setup
Google Drive Google Drive service account / OAuth
OneDrive Microsoft OneDrive setup
Amazon S3 S3 bucket configuration
Authentication OAuth2, OIDC, and social login
Notifications Notification backend setup

Security & Compliance

Guide Description
Credential Rotation Rotate secrets safely
Licensing Compliance Dependency licenses
Privacy & GDPR Privacy compliance

Development

Guide Description
Contributing Code style, commits, and PR process
Troubleshooting Common issues and solutions
Configuration Troubleshooting Configuration-specific issues
Build Metadata Version and build information
Internationalization Translation and localization

Development & Testing

Running Tests

# Install development dependencies
pip install -r requirements-dev.txt

# Run all tests
pytest

# Run with coverage report
pytest --cov=app --cov-report=term-missing

# Run only fast unit tests
pytest -m unit

Tests are automatically configured with the necessary environment variables — no manual setup required!

For detailed testing information, see the Contributing Guide.

Contributing

We welcome contributions! Please see CONTRIBUTING.md for:

  • Code style guidelines (Ruff for formatting and linting)
  • Commit message format (Conventional Commits)
  • Testing requirements
  • Pull request process

License

This project is licensed under the Apache License 2.0 — see the LICENSE file for details.

Third-Party Software

This project uses various third-party libraries and components. See NOTICE for attributions and the attribution page in the application for more details.

LGPL Compliance

This project uses Paramiko which is licensed under LGPL-2.1. In accordance with the LGPL license:

  • The source code for Paramiko can be obtained from https://github.com/paramiko/paramiko
  • A copy of the LGPL license is available in the application at /licenses/lgpl.txt
  • Users have the right to modify and redistribute Paramiko under the terms of the LGPL

Dependency Licenses

The following is a summary of the licenses used by our direct dependencies:

Dependency License
FastAPI MIT
Celery BSD
Uvicorn BSD
SQLAlchemy MIT
Pydantic MIT
litellm MIT
pypdf BSD
Requests Apache 2.0
Dropbox SDK MIT
Azure AI Document Intelligence MIT
Authlib BSD
Starlette BSD
Alembic MIT
Google API Client Apache 2.0
Microsoft Graph Core MIT
MSAL MIT
Boto3 Apache 2.0
Paramiko LGPL-2.1
Apprise MIT
Redis (py) BSD
Gotenberg Client MIT
Meilisearch MIT

For a comprehensive list of all dependencies and their licenses, run:

pip install pip-licenses
pip-licenses
S
Description
Mirror of christianlouis/DocuElevate
Readme 25 MiB
Languages
Python 79.7%
HTML 17.2%
TypeScript 1.4%
JavaScript 1.3%
CSS 0.2%