AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
Intelligent document processing, OCR, metadata extraction, and document routing for self-hosted paperless workflows.
Developer toolsPython · HTMLGitHub @christianlouisOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Loading the full README. The saved excerpt is shown below.
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.Read the full README ↗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:
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.
Note: Screenshots may not reflect the very latest UI. For the most current look, visit docuelevate.org.
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 |
Each document passes through a configurable set of steps:
Steps can be customized using Pipelines and Routing Rules for conditional processing.
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 |
| Evernote | Notes with PDF attachments |
| Rclone | 70+ cloud providers via Rclone |
/docs| 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 |
| Gotenberg, pypdf | |
| Auth | Authlib (OAuth2/OIDC), MSAL, social providers |
| Infrastructure | Docker, Docker Compose, Helm/Kubernetes |
| Docs | MkDocs Material |
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.
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.
| 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 |
| 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 |
| Guide | Description |
|---|---|
| API Documentation | REST & GraphQL API reference |
| Configuration Guide | All environment variables |
| Configuration Master | Configuration overview |
| Settings Management | Runtime settings UI |
| 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 |
| Guide | Description |
|---|---|
| Dropbox | Dropbox OAuth setup |
| Google Drive | Google Drive service account / OAuth |
| OneDrive | Microsoft OneDrive setup |
| Amazon S3 | S3 bucket configuration |
| Evernote | Evernote note creation |
| Authentication | OAuth2, OIDC, and social login |
| Notifications | Notification backend setup |
| Guide | Description |
|---|---|
| Credential Rotation | Rotate secrets safely |
| Licensing Compliance | Dependency licenses |
| Privacy & GDPR | Privacy compliance |
| 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 |
# 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.
We welcome contributions! Please see CONTRIBUTING.md for:
This project is licensed under the Apache License 2.0 — see the LICENSE file for details.
This project uses various third-party libraries and components. See NOTICE for attributions and the attribution page in the application for more details.
This project uses Paramiko which is licensed under LGPL-2.1. In accordance with the LGPL license:
/licenses/lgpl.txtThe 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 |
| Evernote SDK | BSD |
| 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