Browse docs

Docker Installation

Run Resume Matcher with Docker: one docker run with the published image, or clone the repo and docker compose up. Then open localhost:3000.

Prerequisites

Install Docker Desktop or a current Docker Engine + Docker Compose setup.

Quick Start

The fastest way to run Resume Matcher is the prebuilt image. It ships as a single container image on Docker Hub, where it’s a Docker-Sponsored Open Source image, and on GitHub Container Registry. Both are built for linux/amd64 and linux/arm64.

# Docker Hub
docker run --name resume-matcher -p 3000:3000 \
  -v resume-data:/app/backend/data \
  srbhr/resume-matcher:latest

# or GitHub Container Registry
docker run --name resume-matcher -p 3000:3000 \
  -v resume-data:/app/backend/data \
  ghcr.io/srbhr/resume-matcher:latest

Then open http://localhost:3000/settings to connect a model. The resume-data volume holds your database and settings, so your data survives container upgrades. The database is SQLite and needs no setup; to keep your data in PostgreSQL instead, see Use PostgreSQL Instead of SQLite. Pin a version (for example :1.3.0) if you want repeatable deployments.

To run it from a clone of the repo with Docker Compose instead:

git clone https://github.com/srbhr/Resume-Matcher.git
cd Resume-Matcher
docker compose up -d

The checked-in Docker flow exposes Resume Matcher on a single public origin.

Default URLs

Surface URL
App http://localhost:3000
Settings http://localhost:3000/settings
Health http://localhost:3000/api/v1/health
API docs http://localhost:3000/docs

In the default Docker setup, the UI and public API routes are served from the same origin.

Common Commands

With Docker Compose:

docker compose up -d
docker compose logs -f
docker compose down

Resume Matcher runs on donations.

More than 200,000 job seekers have used it, free, with no ads and no paywall. If it saved you time or helped you land an interview, sponsoring or buying a coffee keeps it that way.

Change the Public Port

Use the PORT environment variable instead of editing the compose file:

PORT=4000 docker compose up -d

Then use:

  • http://localhost:4000
  • http://localhost:4000/settings
  • http://localhost:4000/api/v1/health
  • http://localhost:4000/docs

Provider Configuration

After the containers are up, open Settings and choose your provider:

  • OpenAI
  • Anthropic
  • OpenRouter
  • Google Gemini
  • DeepSeek
  • Groq
  • Azure AI Foundry
  • Ollama
  • Any OpenAI-compatible server (llama.cpp, vLLM, LM Studio)
  • ChatGPT plan, signed in from a browser on the machine that runs the container

The Claude plan option needs a local install: the Claude Code CLI isn’t in the image. See Bring Your Own AI Key for each provider’s settings. For local-model usage, follow Docker + Ollama.

Troubleshooting

The app does not load

Check logs:

docker compose logs -f

You changed the port

Route all app, settings, health, and docs URLs through the same public port.

Next Steps