Everything you need to run Mathpix Private Cloud OCR (PCO) in your own infrastructure — on a single GPU host with Docker, or on Kubernetes across many GPUs. The OCR image itself comes from Mathpix (a registry repository you are granted pull access to); these files orchestrate it.
Start with the guide at https://docs.mathpix.com/guides/private-cloud-ocr-quickstart. In short:
cp .env.example .env # set your image tag, deployment id and the two storage keys
docker compose up -d --wait # first start: a few minutes while the models load
curl -s localhost:8080/health| file | what |
|---|---|
docker-compose.yml |
the three containers: pco, redis, storage (SeaweedFS). Not edited |
.env.example |
copy to .env; image tag, deployment id, storage keys, port, and COMPOSE_PROFILES (whether the bundled redis/storage run, or you point at your own) |
seaweedfs-s3.json |
the included object store's credentials; set the same two values as in .env |
docker-compose.logging.yml |
optional Compose override for a Docker logging driver (syslog, fluentd, awslogs, gelf, splunk); add with -f docker-compose.logging.yml. Not needed for PCO_LOG_SINK |
docker-compose.gcp.yml |
optional Compose override for Google Cloud Storage on a non-GCE host: mounts a service-account key (PCO_GCP_CREDENTIALS_FILE) so GCS has credentials without a metadata server. Not needed on GKE/GCE |
helm/mathpix-pco/ |
the Helm chart for Kubernetes and multi-GPU: set replicas to the GPU count, one pod per GPU (the device plugin pins each pod a GPU, the Service load-balances); Redis and SeaweedFS as StatefulSets, or your own |
Full instructions — prerequisites, configuration, the API, monitoring, usage, upgrades and troubleshooting — are in the guides at https://docs.mathpix.com/guides/private-cloud-ocr-quickstart and https://docs.mathpix.com/guides/private-cloud-ocr-operations.
Licensed under the MIT License (see LICENSE).