Ref:

OCR WebApp is a Dockerized application that provides a web interface for performing Optical Character Recognition (OCR) on uploaded images and documents. It leverages powerful OCR engines to extract text from various file formats, making it easy for users to convert scanned documents and images into editable text.

Portainer Stack

ocr-webapp

yaml 51 lines
---
services:
  ocr-webapp:
    image: jonesckevin/ocr-webapp:latest
    container_name: ocr-webapp
    ports:
      - "${OCRPORT:-8002}:5000"
    volumes:
      # Persistent storage for uploaded files and OCR results
      - ./data/uploaded:/data/uploaded
      - ./data/output:/data/output
      - ./data/logs:/data/logs
    environment:
      # Flask settings
      - FLASK_ENV=production
      - SECRET_KEY=change-this-to-a-secure-random-string
      
      # Admin feature toggles
      - ALLOW_LIVE_LANG_INSTALL=true
      - ALLOW_CLIENT_API_KEYS=true
      
      # Logging configuration
      - LOG_MAX_BYTES=10485760  # 10MB default
      - LOG_BACKUP_COUNT=5
      - LOG_LEVEL=INFO
      
      # LLM Server endpoints (local)
      - OLLAMA_HOST=http://host.docker.internal:11434
      - LMSTUDIO_HOST=http://host.docker.internal:1234
      
      # Paid LLM API Keys (server-side, secure)
      # Uncomment and set your API keys as needed
      # - OPENAI_API_KEY=sk-your-openai-key
      # - ANTHROPIC_API_KEY=sk-ant-your-anthropic-key
      # - GOOGLE_API_KEY=AIza-your-google-key
      # - DEEPSEEK_API_KEY=sk-your-deepseek-key
      # - COHERE_API_KEY=your-cohere-key
      # - GROK_API_KEY=xai-your-grok-key
      # - MISTRAL_API_KEY=your-mistral-key
      # - PERPLEXITY_API_KEY=pplx-your-perplexity-key
      
    restart: unless-stopped
    # For live language installation, container needs to run as root
    # user: root
    
    # Resource limits (optional)
    # deploy:
    #   resources:
    #     limits:
    #       memory: 2G
    #       cpus: '2'