presidio Docker & Self-Hosted Deployment

GitHub

An open-source framework for detecting, redacting, masking, and anonymizing sensitive data (PII) across text, images, and structured data.

RAW Compose
1. Pull Image (DOCKERHUB) docker pull ollama/ollama
2. Docker Run (1-Click Launch) docker run -d --name presidio -p 11434:11434 --restart always ollama/ollama:0.32.0@sha256:57f573b47f1f71ebb445789f279fe3e596a8beab182f7cf486db9205bad87c5a
3. Podman Run podman run -d --name presidio -p 11434:11434 --restart always ollama/ollama:0.32.0@sha256:57f573b47f1f71ebb445789f279fe3e596a8beab182f7cf486db9205bad87c5a
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/ollama/ollama:0.32.0@sha256
5. ORAS Pull (OCI Artifact) oras pull ollama/ollama:0.32.0@sha256:57f573b47f1f71ebb445789f279fe3e596a8beab182f7cf486db9205bad87c5a
6. Compose Deployment docker compose up -d
docker-compose.yml
Download .yml
services:
  ollama:
    image: ollama/ollama:0.32.0@sha256:57f573b47f1f71ebb445789f279fe3e596a8beab182f7cf486db9205bad87c5a
    ports:
      - "127.0.0.1:11434:11434"   # or "127.0.0.1:11435:11434"
    volumes:
      - ollama-data:/root/.ollama
    environment:
      - OLLAMA_HOST=0.0.0.0
    healthcheck:
      test: ["CMD", "ollama", "list"]
      interval: 10s
      timeout: 10s
      retries: 30        # ~5 minutes total
      start_period: 60s
    restart: unless-stopped

  presidio-anonymizer:
    image: ${REGISTRY_NAME}/${IMAGE_PREFIX}presidio-anonymizer${TAG}
    build:
      context: ./presidio-anonymizer
      cache_from:
        - type=registry,ref=${REGISTRY_NAME}/${IMAGE_PREFIX}presidio-anonymizer:latest
    environment:
      - PORT=5001
    ports:
      - "5001:5001"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:5001/health"]
      interval: 30s
      timeout: 3s
      start_period: 30s
      retries: 3
    restart: unless-stopped

  presidio-analyzer:
    image: ${REGISTRY_NAME}/${IMAGE_PREFIX}presidio-analyzer${TAG}
    build:
      context: ./presidio-analyzer
      cache_from:
        - type=registry,ref=${REGISTRY_NAME}/${IMAGE_PREFIX}presidio-analyzer:latest
    environment:
      - PORT=5001
      - OLLAMA_HOST=http://ollama:11434
    ports:
      - "5002:5001"
    depends_on:
      ollama:
        condition: service_healthy
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:5001/health"]
      interval: 30s
      timeout: 3s
      start_period: 30s
      retries: 3
    restart: unless-stopped

  presidio-image-redactor:
    image: ${REGISTRY_NAME}/${IMAGE_PREFIX}presidio-image-redactor${TAG}
    build:
      context: ./presidio-image-redactor
      cache_from:
        - type=registry,ref=${REGISTRY_NAME}/${IMAGE_PREFIX}presidio-image-redactor:latest
    environment:
      - PORT=5001
    ports:
      - "5003:5001"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:5001/health"]
      interval: 30s
      timeout: 3s
      start_period: 30s
      retries: 3
    restart: unless-stopped

volumes:
  ollama-data: