Quick Start Guide
Get your first pipeline running in under 5 minutes.
This guide provides the fastest path from installation to a working document processing pipeline. For detailed setup and advanced features, see USER_GUIDE_PIPELINE_SETUP.md.
Prerequisites Check (30 seconds)
Before starting, verify you have Python 3.12 and ~5 GB of free disk space:
# Check Python 3.12
python3.12 --version
# Expected: Python 3.12.x
# Check available disk space (need ~5GB)
df -h .
Don't have Python 3.12?
- macOS:
brew install python@3.12 - Ubuntu/Debian:
sudo apt install python3.12 python3.12-venv - Fedora/RHEL:
sudo dnf install python3.12
Automated Setup (2 minutes)
Run the automated setup script to install everything:
# Clone the repository
git clone https://github.com/IBM/docling-pipelines.git
cd docling-pipelines
# Make setup script executable
chmod +x scripts/setup_docling_pipelines_environment.sh
# Run automated setup (installs only required model for quick start)
./scripts/setup_docling_pipelines_environment.sh --models nomic-embed-text
What this installs:
- ✅ uv package manager
- ✅ Ollama server + nomic-embed-text model (~274 MB)
- ✅ OpenSearch + Dashboards (for vector storage)
- ✅ Python virtual environment + dependencies
Setup takes 5–10 minutes depending on your internet connection.
Configure Environment
# Copy environment template
cp .env.example .env
# The default values work for local development
# Edit .env if you need to customize settings
Verify Services
# Check Ollama (should return list of models)
curl http://localhost:11434/api/tags
# Check OpenSearch (should return cluster info)
curl -u admin:MyStrongPass123! http://localhost:9200
Both commands return JSON responses — you're ready to run your first pipeline.
Jump to the Troubleshooting section below.
Your First Pipeline (2 minutes)
The repository includes sample text files ready to process.
ls -la sample_documents/
# Output includes: hello.txt, 1kb_file.txt samples
Set PYTHONPATH and activate the virtual environment.
# Set PYTHONPATH (from project root)
export PYTHONPATH="$(pwd)/src:${PYTHONPATH}"
# Activate virtual environment
source .venv/bin/activate
Execute the complete document processing pipeline.
docling-pipelines --flow-file sample_flows/quickstart/complete_pipeline_ollama.json
Expected Output
================================================================================
FLOW: complete-document-pipeline
Operators: 5
Started: 2024-01-15 10:30:00
================================================================================
[ingest] Starting ingest_source...
================================================================================
ingest (COMPLETED)
================================================================================
Duration: 0.50s | Documents: 1 processed, 0 failed, 0 skipped
Data Columns: 8 total (8 added by this operator)
Added (8): id, name, path, size, created_time, modified_time, content, extension
================================================================================
[extract] Starting extract_operator...
[chunk] Starting chunker...
[embed] Starting embeddings...
[store] Starting vectordb...
================================================================================
FLOW EXECUTION SUMMARY
================================================================================
Status: COMPLETED | Total Duration: 15.30s
Documents: 1 completed, 0 failed, 0 skipped
Operator Status Duration Docs
──────────────────────────────────────────────────────────
ingest_source_filesystem Completed < 1s 2/2
extract_with_docling Completed < 1s 2/2
simple_chunker Completed 1.00s 2/2
ollama_embeddings Completed 1.00s 2/2
opensearch_vector_store Completed 1.00s 2/2
================================================================================
Check that your document was stored in OpenSearch.
curl -u admin:MyStrongPass123! \
"http://localhost:9200/sample-documents-index/_search?pretty" \
-H 'Content-Type: application/json' \
-d '{"query": {"match_all": {}}, "size": 1}'
You've successfully installed Docling Pipelines, processed a document through the complete pipeline, and stored vector embeddings in OpenSearch.
Understanding What Just Happened
Your document went through this pipeline:
| Operator | What it did |
|---|---|
ingest_source | Read hello.txt from disk via the filesystem provider |
extract_operator | Extracted structured content using docling_library mode |
chunker | Split into simple chunks (~512 chars each) |
embeddings | Generated vector embeddings using Ollama + nomic-embed-text |
vectordb | Stored in OpenSearch for similarity search |
What's Next?
Explore More Flows
ls -la sample_flows/
Invoice Processing Example
This flow uses entity extraction (NuExtract) and an LLM-based document classifier. Install the required dependency and pull the model first:
# Required for entity extraction with NuExtract
uv pip install qwen-vl-utils
# Required for the document classifier node
ollama pull llama3.2
docling-pipelines --flow-file sample_flows/use_cases/invoice_processing.json
View Data in OpenSearch Dashboards
Open http://localhost:5601
— Username: admin · Password: MyStrongPass123!
Create Your Own Pipeline
# Copy sample flow as starting point
cp sample_flows/quickstart/complete_pipeline_ollama.json my_flow.json
# Edit paths, chunk_size, models …
open my_flow.json
# Run your custom flow
docling-pipelines --flow-file my_flow.json
Deep Dive Documentation
- Flow Authoring Format Guide— Complete guide to creating flows
- Complete Setup Guide— Detailed installation and configuration
- Architecture Overview— System design and operator details
- Sample Flows Directory— More pipeline examples by category
- Documentation Book— The definitive 12-chapter guide
Run the Web UI
The frontend requires Node.js 22 and the FastAPI backend already running.
Use nvm (recommended) or download from nodejs.org.
nvm install 22.15.1
nvm use 22.15.1
node --version # v22.15.1
In one terminal, from the project root:
source .venv/bin/activate
uvicorn docpipe.api.main:app --host 0.0.0.0 --port 8080
Do not use python src/docpipe/api/main.py when running the UI in dev mode —
it starts a BFF sidecar on port 3001 that conflicts with npm run dev.
In a second terminal, from the project root:
cd frontend
npm install # once
cp .env.example .env # once
npm run dev
Open http://localhost:3000/ui/
Troubleshooting Quick Fixes
Install Python 3.12 first, then re-run the setup script.
./scripts/setup_docling_pipelines_environment.shollama serve &
sleep 5
curl http://localhost:11434/api/tags
podman-compose -f docker/docker-compose.opensearch.yml up -d
sleep 30
curl -u admin:MyStrongPass123! http://localhost:9200
export PYTHONPATH="$(pwd)/src:${PYTHONPATH}"
pwd # Should end with /docling-pipelines
podman-compose -f docker/docker-compose.opensearch.yml down
pkill -f "ollama serve"
rm .docpipe_setup_config docpipe_setup.log
./scripts/setup_docling_pipelines_environment.sh
Quick Reference Commands
# Activate environment (from project root)
export PYTHONPATH="$(pwd)/src:${PYTHONPATH}"
source .venv/bin/activate
# Run a flow
docling-pipelines --flow-file path/to/flow.json
# List operators (summary)
docling-pipelines --list-operators
# List operators (verbose)
docling-pipelines --list-operators --verbose
# Check Ollama
curl http://localhost:11434/api/tags
# Check OpenSearch
curl -u admin:MyStrongPass123! http://localhost:9200
# Stop services
podman-compose -f docker/docker-compose.opensearch.yml down
pkill -f "ollama serve"