- Conditionally mount ingestion router only when OpenSearch + embedding are configured - Add `ingestionAvailable` field to /api/health response - Add `ingestion` feature flag to frontend (hides Search nav, Ingest button, OpenSearch badge, indexed badges/filters when disabled) - Skip ingestion polling when flag is off - Make OpenSearch + embedding optional in docker-compose via profiles - Add docker-compose.ingestion.yml override for full-stack ingestion - Set BATCH_PAGE_SIZE=5 default in Docker local image - Lead Quick Start with one-liner docker run command - Document ingestion as opt-in with dedicated section - Add BATCH_PAGE_SIZE, MAX_FILE_SIZE_MB, MAX_PAGE_COUNT, RATE_LIMIT_RPM to config tables - Update test counts (380 backend, 159 frontend) - Date CHANGELOG 0.4.0, bump frontend version to 0.4.0 - Sync CONTRIBUTING.md with E2E Karate test sections Closes #180
2.3 KiB
2.3 KiB
Docling Studio
A visual document analysis studio powered by Docling.
Upload a PDF, configure the extraction pipeline, and visualize the results — text, tables, images, formulas, bounding boxes — all from your browser.
Features
- PDF viewer with page navigation, bounding box overlay, and resizable results panel
- Configurable Docling pipeline — OCR, table extraction, code/formula enrichment, picture classification & description, image generation
- Bounding box visualization — color-coded element overlay directly on the PDF
- Chunking — split extracted content into semantic chunks (hierarchical, hybrid, or page-based) with configurable token limits
- Markdown & HTML export of extracted content
- Document management — upload, list, delete
- Analysis history — re-visit and open past analyses
- Feature flags — capabilities adapt to the conversion engine (local vs remote)
- Upload limits — configurable max file size (
MAX_FILE_SIZE_MB) and max page count (MAX_PAGE_COUNT) per document - Rate limiting — configurable requests per minute per IP (
RATE_LIMIT_RPM) - Deployment modes — self-hosted (default) or HuggingFace Spaces (with disclaimer banner)
- Health endpoint —
/api/healthreports engine type, deployment mode, and database status - Dark / Light theme and FR / EN localization
Tech Stack
| Layer | Stack |
|---|---|
| Frontend | Vue 3, TypeScript, Vite, Pinia |
| Backend | FastAPI, Docling 2.x, SQLite (aiosqlite) |
| CI | GitHub Actions (lint, type-check, test, build) |
| Infra | Docker Compose + Nginx |
Quick Start
# Docker (fastest)
docker run -p 3000:3000 ghcr.io/scub-france/docling-studio:latest-local
Open http://localhost:3000 and upload a PDF.
!!! note The first analysis takes longer as Docling downloads its ML models (~400 MB). Subsequent runs are fast.
See Getting Started for local development setup.
License
MIT — Pier-Jean Malandrino

