Matcher is available to licensed customers; its repository is maintained internally. The instructions below assume you already have access to the required Matcher project files.
Docker compose (development)
Docker Compose is the recommended approach for local development and testing.
1. Access the Matcher project
From the Matcher project directory:2. Configure the environment
Thedocker-compose.yml file includes sensible defaults for local development. You can override any value by setting environment variables in your shell or by creating a .env file in the project root.
Refer to Environment variables for details on available settings.
3. Start services
Start the required infrastructure services:4. Verify the installation
Confirm that Matcher is running by listing configuration contexts. On a fresh install, the cursor-paginated response has an emptyitems array:
200 when every required dependency is ready. It returns 503 with per-check details when a required dependency is unavailable.
Docker compose services
The defaultdocker-compose.yml includes:
Development with hot reload
For active development, use:Kubernetes / helm (production)
Production deployments should use the official Helm chart.
Prerequisites
- Kubernetes 1.28+
- Helm 3.12+
kubectlconfigured for the target cluster
1. Create a namespace
2. Configure values
Create avalues.yaml file with your deployment configuration:
3. Create secrets
Create Kubernetes secrets for sensitive credentials:4. Install the chart
5. Verify the deployment
Upgrading
To upgrade an existing deployment:Environment variables
Environment variables provide Matcher’s bootstrap configuration. Systemplane can override runtime-mutable settings after startup.
Application
CORS
Database (PostgreSQL)
Database replica (PostgreSQL)
Cache (Redis)
Messaging (RabbitMQ)
Authentication
Object storage (S3-compatible)
Observability
TLS
Rate limiting
Swagger
Idempotency
Deduplication
Outbox
Workers
Scheduler
Archival
Fetcher / Discovery
These settings control Discovery, which reads from external databases through an in-process extraction engine embedded in Matcher — not a separate networked service. See Discovery for how it works.Infrastructure
For multi-tenant deployment settings, see Multi-Tenant Mode. For runtime configuration management, see Runtime Configuration (Systemplane).
Verify the installation
Validate that Matcher and its required dependencies are ready:
200 when every required dependency is ready. It returns 503 with per-check details when a required dependency is unavailable. Configure Kubernetes readiness probes to use this endpoint.
Troubleshooting
Common issues
Connection refused to PostgreSQL
Connection refused to PostgreSQL
- Cause: PostgreSQL is not running or unreachable.
- Resolution:
- Verify PostgreSQL is running:
docker-compose ps postgres - Check connection values in
.env - Test connectivity:
nc -zv localhost 5432 - Review logs:
docker-compose logs postgres
Redis connection timeout
Redis connection timeout
- Cause: Redis is not running or credentials are incorrect.
- Resolution:
- Verify Redis is running:
docker-compose ps redis - Confirm
REDIS_PASSWORD - Test connectivity:
redis-cli -h localhost ping
RabbitMQ queues not created
RabbitMQ queues not created
- Cause: RabbitMQ is still initializing or the virtual host is missing.
- Resolution:
- Wait until RabbitMQ is healthy
- Access the management UI at http://localhost:15672
- Verify
RABBITMQ_VHOST
Authentication errors
Authentication errors
- Cause: Auth service is unreachable or the token is invalid.
- Resolution:
- Verify
PLUGIN_AUTH_ADDRESS - Disable auth for development:
PLUGIN_AUTH_ENABLED=false - Review auth service logs
Migration failed
Migration failed
- Cause: Database migrations could not be applied.
- Resolution:
- Check migration status:
make migrate-status - Review migration logs
- Apply migrations manually:
make migrate-up - Inspect the
schema_migrationstable if needed
Viewing logs
Debug mode
Enable debug logging for additional visibility:Next steps
Quick start
Run your first reconciliation.
Configuration
Configure contexts, sources, and match rules.

