Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tesseract OCR WebApp

Tesseract OCR WebApp

Docker Hub - Jonesckevin/ocr-webapp

A Docker-based web application for OCR text extraction with AI-powered translation support. This app is meant to work offline using local LLMs (Ollama, LM Studio) with optional online cloud LLM support (OpenAI, Anthropic, Google Gemini, etc.). Great for your HALp needs!

Example OCR Result

Features

  • OCR Processing: Extract text from images (PNG, JPG, TIFF, etc.) and PDF files
  • Multi-language OCR: Support for 100+ languages with top 10 pre-installed
  • AI Translation: Translate extracted text using local (Ollama, LM Studio) or cloud LLMs
  • Multiple Upload Methods: Drag & drop, file select, or paste from clipboard
  • File Management: Manage uploaded files and OCR results through the web interface
  • Configurable: Customize titles, file limits, LLM settings via config file
  • Secure API Keys: Server-side environment variables or client-side browser storage

Quick Start

Docker Hub

docker run -d -p 8202:5000 \
  -v ./data/uploaded:/data/uploaded \
  -v ./data/output:/data/output \
  -v ./config.json:/app/config.json:ro \
  jonesckevin/ocr-webapp

Using Docker Compose (Recommended)

  1. Clone the repository:

    git clone https://github.com/Jonesckevin/OCR-WebApp.git
    cd OCR-WebApp
  2. Start the application:

    docker compose up -d
  3. Portainer:

    services:
      ocr-webapp:
        image: jonesckevin/ocr-webapp:latest
        container_name: ocr-webapp
        restart: unless-stopped
        ports:
          - "8202:5000"
        volumes:
          - ./data/uploaded:/data/uploaded
          - ./data/output:/data/output
          - ./data/logs:/data/logs
        environment:
          - FLASK_ENV=production
          - SECRET_KEY=change-this-to-a-secure-random-string
          - ALLOW_LIVE_LANG_INSTALL=true
          - ALLOW_CLIENT_API_KEYS=true
          - LOG_MAX_BYTES=10485760  # 10MB default
          - LOG_BACKUP_COUNT=5
          - LOG_LEVEL=INFO
          - OLLAMA_HOST=http://host.docker.internal:11434
          - LMSTUDIO_HOST=http://host.docker.internal:1234
  4. Open your browser to http://localhost:8202

Building Manually

docker compose up --build
# or
docker build -t ocr-webapp .
docker run -d -p 8202:5000 \
  ocr-webapp

Configuration

Pre-installed OCR Languages

Priority languages (highlighted in UI):

  • English (eng)
  • French (fra)
  • Ukrainian (ukr)
  • Russian (rus)

Additional languages:

  • German (deu)
  • Spanish (spa)
  • Italian (ita)
  • Portuguese (por)
  • Chinese Simplified (chi_sim)
  • Japanese (jpn)


API Endpoints

Endpoint Method Description
/ GET Main application page
/health GET Health check endpoint
/api/config GET Get application configuration
/api/progress/<task_id> GET Get progress for a specific task
/api/logs GET Get application logs
/api/logs/download GET Download complete log file
/api/logs/clear POST Clear log file
/api/upload POST Upload file
/api/upload/paste POST Upload pasted image (base64)
/api/files GET List uploaded files
/api/files/<filename> GET Download uploaded file
/api/files/<filename> DELETE Delete uploaded file
/api/languages GET List installed OCR languages
/api/languages/install POST Install new language pack
/api/ocr POST Perform OCR on a file
/api/results GET List OCR result files
/api/results/<result_id> GET Get specific OCR result
/api/results/<result_id> DELETE Delete OCR result
/api/results/<result_id>/edit POST Save edited OCR text
/api/results/<result_id>/download/<format> GET Download result (json/txt/translation)
/api/llm/test POST Test LLM provider connection
/api/llm/models POST Get available models for provider
/api/llm/translate POST Translate text using LLM
/static/<path:filename> GET Serve static files

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages