Deploy the full ExisEcho fuzzy matching engine on your own infrastructure. Same powerful API, same Excel Add-in, same matching algorithms — running entirely within your environment. 14-day free trial with no feature limits.

Why Self-Host?

🔒

Data Sovereignty

Sensitive data — customer records, patient files, financial data — never leaves your network. Meet HIPAA, GDPR, SOC 2, and internal compliance requirements without exception requests.

No Latency, No Bandwidth Costs

Process millions of records over your local network. No data uploaded to external servers, no round-trip latency, no cloud egress fees.

🛡

Air-Gapped & Offline Ready

Runs in disconnected environments, classified networks, or behind strict firewalls. Once the container is pulled, no internet connection is required to operate.

Full Control

Choose your own port, TLS termination, reverse proxy, and scaling strategy. Integrate into existing Docker Compose stacks or Kubernetes clusters.

📊

No Record Limits

No cloud tier limits. Process datasets of any size directly through the API or the bundled Excel Add-in. For very large jobs, the async endpoint (POST /api/match/async) queues the work and returns a job id to poll — no HTTP timeouts to worry about.

📦

Everything in One Container

The fuzzy matching API, admin UI, health checks, and a deployable Excel Add-in — all bundled into a single ~86 MB Docker image. No external databases or dependencies.

Who It's For

  • Healthcare & life sciences — patient record matching under HIPAA. PHI stays on-premise.
  • Financial services — KYC and AML screening without sending customer data to third parties.
  • Government & defense — runs in air-gapped and classified environments.
  • Enterprise IT — CRM and ERP deduplication inside your corporate network.
  • Data teams — integrate fuzzy matching into ETL pipelines via the REST API.

Quick Start

docker run -d \
  --name exisecho \
  -p 8080:8080 \
  -v exisecho-data:/app/data \
  exisllc/exisecho-docker:latest

Open http://localhost:8080 to access the admin panel. The 14-day trial starts automatically — all features enabled, no registration required.

What's Inside

Fuzzy Match API POST /api/match and POST /api/compare — no API key required
Admin UI License management, API docs, Python examples, system info
Excel Add-in Download a sideload manifest from the admin panel and deploy to your organization
Health Check GET /api/health — for monitoring and orchestration

Run it in Docker Desktop (no command line)

If you'd rather avoid the terminal, Docker Desktop can pull and run ExisEcho entirely through its UI. These steps work on Windows, macOS, and Linux.

  1. Install & start Docker Desktop. Download it from docker.com/products/docker-desktop. Launch it and wait until the whale icon in the tray (Windows/macOS) shows Engine running.
  2. Pull the image. Click Search at the top of Docker Desktop, type exisllc/exisecho-docker, pick the result, choose the latest tag, and click Pull.
  3. Open the Run dialog. Go to the Images tab, hover over exisllc/exisecho-docker:latest, and click the Run button on the right (or the ▶ play icon at the top of the image detail view).
  4. Expand "Optional settings" in the Run dialog and fill in:
    • Container name: exisecho (any name you like)
    • Ports → Host port: 8080 — leave the container port as 8080. If 8080 is already in use on your machine, pick something else like 8081.
    • Volumes (optional but recommended): set Host path to any folder on your computer and Container path to /app/data. This persists the hardware ID, trial state, and license across restarts.
  5. Click Run. Docker Desktop switches to the Containers tab. Your container should show a green dot and 0.0.0.0:8080->8080/tcp (or your chosen port) under Port(s).
  6. Open the admin UI. Browse to http://localhost:8080 (or the host port you chose). The 14-day trial starts automatically — no registration.

Common gotchas

  • "Name already in use" when you click Run — you have an old container with the same name. Go to Containers, find the old one, click the ⋮ menu → Delete (stop it first if running), then run again.
  • Blank Port(s) column after Run — you skipped the Host port field. Stop and delete the container, then Run again with a host port filled in.
  • "This site can't be reached" in the browser — open the container's Logs tab inside Docker Desktop. If you see Now listening on: http://[::]:8080, the app is up; double-check the host port in the address bar. Otherwise the logs will show what went wrong.
  • Upgrading to a new version — pull the new tag in Images, stop & delete the old container, and Run the new image with the same name and same volume mapping so your license survives.

Docker Compose

services:
  exisecho:
    image: exisllc/exisecho-docker:latest
    ports:
      - "8080:8080"
    volumes:
      - exisecho-data:/app/data
    restart: unless-stopped

volumes:
  exisecho-data:

Matching Capabilities

The same algorithms available in the cloud API and desktop application:

  • Trigram similarity — robust fuzzy matching that handles typos, transpositions, and misspellings
  • Phonetic matching — catches "Smith" vs. "Smyth", "Jon" vs. "John"
  • Synonym expansion — "Robert" matches "Bob", "Corp" matches "Corporation"
  • Address normalization — "St" matches "Street", "NYC" matches "New York City"
  • Per-column weights and options — fine-grained control over how each field is compared
  • Parallel processing — takes advantage of all available CPU cores

Licensing

14-Day Free Trial

The trial starts automatically on first run. All features are fully functional with no record limits. After 14 days, the API returns 403 Forbidden until a license is activated.

Purchase a license or contact sales for volume pricing.

View on Docker Hub Talk to Sales