selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
DeepSeek-OCR-WebUI logo

Self-host DeepSeek-OCR-WebUI

v4.1

Web UI and API to turn images and PDFs into Markdown text

ReleaseOpen SourceMIT
Docker ComposeCompose file & guide
docker compose up -d
Updated8 months ago
LanguageTypescript
Setup difficultyAdvanced
MobileResponsive
Stars
447
RAM
16GB+
Storage
50GB+
Port
8001 (Web UI and REST API (docker run maps 8001:8001; PORT env var default))
Docker
neosun/deepseek-ocr
Home page of the Vue 3 web UI with access to all featuresDocument processing screen with page sidebar, viewer and results panelBuilt-in quick-start guide screen: import files, select pages, choose mode

What is DeepSeek-OCR-WebUI?

DeepSeek-OCR-WebUI wraps the DeepSeek-OCR-2 vision model in a browser-based document recognition app with a REST API. Uploaded images and PDFs can be processed in seven modes: document-to-Markdown, general OCR, plain text, chart and formula parsing, image description, find-and-locate with bounding-box annotation, and a custom prompt mode. The Vue 3 interface adds a page sidebar with thumbnails and reordering, a real-time processing queue, health monitoring, and a four-language UI (English, Simplified and Traditional Chinese, Japanese). The FastAPI backend exposes /ocr, /ocr-pdf, /pdf-to-images and /health endpoints, and a bundled Model Context Protocol server lets AI assistants call the OCR service. To self-host, run the all-in-one Docker image (GPU recommended; the model is pre-downloaded inside the image) or install natively on Linux or Apple Silicon Macs with conda/pip and start.sh. CPU-only Docker is supported but described as very slow; the docs list a minimum of a 16GB+ VRAM NVIDIA GPU, 16GB RAM, 50GB disk and CUDA 11.8+.

Should you self-host DeepSeek-OCR-WebUI?

DeepSeek-OCR-WebUI scores 47/100 on selfhost.directory (how scoring works) and ranks #3 of 4 in OCR. It has 447 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is advanced: plan for several services and some ongoing maintenance. An official Docker image is available. It is MIT-licensed and written mostly in Typescript.

Its closest alternative on selfhost.directory is PaddleOCR (85/100, 91 855 stars). It scores higher overall, so compare the two before you pick. See DeepSeek-OCR-WebUI vs PaddleOCR side by side.

Features

  • Apple Silicon support
  • Batch Processing
  • Bounding box visualization
  • GPU Acceleration
  • Health Monitoring
  • MCP Server
  • Multilingual UI
  • PDF upload and conversion
  • Rate Limiting
  • Real-time processing queue
  • REST API
  • Result export
  • Seven recognition modes

DeepSeek-OCR-WebUI README

How to install DeepSeek-OCR-WebUI

Install DeepSeek-OCR-WebUI with Docker

Environment variables
CUDA_VISIBLE_DEVICES

Pull and run

docker pull neosun/deepseek-ocr:v4.1 docker run -d
--name deepseek-ocr
--gpus all
-p 8001:8001
--shm-size=8g
neosun/deepseek-ocr:v4.1

Access: http://localhost:8001

All-in-one image with pre-downloaded model; CPU-only run supported but described as very slow.

How to configure DeepSeek-OCR-WebUI

  • CUDA_VISIBLE_DEVICESPort of the containerized service, set with docker run -e.

    Port of the containerized service, set with docker run -e.

  • FORCE_BACKEND强制使用特定后端(可选) 选项: cuda, cpu

    强制使用特定后端(可选) 选项: cuda, cpu

  • GPU_IDLE_TIMEOUT60GPU 空闲超时(秒) 模型空闲超过此时间后自动从 GPU 转移到 CPU

    GPU 空闲超时(秒) 模型空闲超过此时间后自动从 GPU 转移到 CPU

  • LOCAL_MODEL_PATHEnvironment variable to point at a custom local model path.

    Environment variable to point at a custom local model path.

  • MAX_OCR_QUEUE_SIZE8Maximum size of the OCR request queue (queue system introduced in v3.6).

    Maximum size of the OCR request queue (queue system introduced in v3.6).

  • MAX_WORKERSWorker setting shown in the production docker-compose example in API docs.

    Worker setting shown in the production docker-compose example in API docs.

  • NVIDIA_VISIBLE_DEVICES0GPU 配置(自动选择最空闲的 GPU)

    GPU 配置(自动选择最空闲的 GPU)

  • PORT8001服务端口

    服务端口

FAQ

Are there API call limits?

The API guide states there is no rate limit by default and suggests client-side throttling, connection pooling and server load monitoring.

How do I process multilingual documents?

No extra configuration is needed: the DeepSeek-OCR model detects and recognizes languages natively.

Which image formats are supported?

PNG, JPG/JPEG and PDF (auto-converted to images), plus other formats supported by PIL.

How do I deploy it in production?

Run it via Docker Compose with an NVIDIA device reservation, port mapping, restart policy and a curl-based /health healthcheck.

What if memory usage is too high?

Limit concurrency, use streaming, close file handles promptly, and cap the Docker container memory (for example --memory=8g).

How should I handle large batches of files?

Process files in parallel with a bounded worker pool, for example ThreadPoolExecutor with about 3 workers.

What to do if PDF processing is slow?

Use the GPU version (the docs cite 3-5x speedup), reduce page count or split the file, and raise the request timeout to 600 seconds.

How can I improve recognition accuracy?

Pick the mode matching the content: doc for documents to Markdown, chart for tables, find for keyword locating, and image for picture descriptions.

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…