OCR Pipeline
PaddleOCR Deployment
Custom Docker container on VPS with triple redundancy after two container-wipe incidents
PaddleOCR Deployment
VPS: 76.13.123.120:8866 | Endpoint: /predict/ocr_system | Registry: ghcr.io/ibrahimlaeeq/paddle-ocr-stable-final:latest
Why PaddleOCR Was Problematic
Unlike other OCR engines (DocTR, Tesseract, Omniparser), PaddleOCR was built as a custom local Docker image with no registry backup. When VPS servers were updated or cleanup commands ran, the image was wiped. Registry-based images survived because Docker could re-pull them.
Incident #1 (2026-02-11): Container Wiped
- Local-only image:
paddle-ocr-stable-final:latest(no registry prefix) docker system pruneremoved it, Docker had no external source to re-pull- All other services survived (DocTR from ghcr.io, Tesseract from Docker Hub, etc.)
- Recovery: Found
/root/paddle_ocr_backup.tar, loaded it, pushed to GitHub Container Registry
Incident #2 (2026-03-11): Container Wiped Again
- Compose file still referenced local image despite registry push
pull_policy: neverprevented auto-recovery- Fix: Updated compose to use
ghcr.io/ibrahimlaeeq/paddle-ocr-stable-final:latest, removedpull_policy: never
Current Setup (Triple Redundancy)
- GitHub Container Registry:
ghcr.io/ibrahimlaeeq/paddle-ocr-stable-final:latest— survives everything - Local VPS image: Docker cache on VPS
- Backup tarball:
/root/paddle_ocr_backup.tar(1.3GB)
Management
- Coolify UI: "Paddle OCR For SynthralOS (production)"
- Container:
ocr-production-service - Will NOT break again after server updates
Was this page helpful?
Last updated today
Built with Documentation.AI