Docker Compose (desarrollo)
Docker Compose es el enfoque recomendado para desarrollo local y pruebas.
1. Clonar el repositorio
2. Configurar el entorno
Crea un archivo de entorno local:config/.env con valores apropiados para tu entorno.
Consulta Variables de entorno para más detalles.
3. Iniciar servicios
Inicia los servicios de infraestructura requeridos:4. Verificar la instalación
Confirma que Matcher está ejecutándose:Servicios de Docker Compose
Eldocker-compose.yml por defecto incluye:
| Servicio | Puerto | Propósito |
|---|---|---|
matcher | 8080 | API de Matcher |
postgres | 5432 | Base de datos PostgreSQL |
redis | 6379 | Caché Redis |
rabbitmq | 5672, 15672 | RabbitMQ (AMQP e interfaz de gestión) |
Desarrollo con recarga en caliente
Para desarrollo activo, usa:Kubernetes / Helm (producción)
Los despliegues de producción deben usar el chart oficial de Helm.
Prerrequisitos
- Kubernetes 1.28+
- Helm 3.12+
kubectlconfigurado para el clúster destino
1. Agregar el repositorio de Helm
2. Crear un namespace
3. Configurar valores
Crea un archivovalues.yaml con tu configuración de despliegue:
4. Crear secrets
Crea Kubernetes secrets para credenciales sensibles:5. Instalar el chart
6. Verificar el despliegue
Actualización
Para actualizar un despliegue existente:Variables de entorno
Matcher se configura completamente a través de variables de entorno.
Aplicación
| Variable | Por defecto | Descripción |
|---|---|---|
ENV_NAME | development | Nombre del entorno de ejecución |
LOG_LEVEL | info | Nivel de verbosidad del log |
SERVER_ADDRESS | :8080 | Dirección del servidor HTTP |
HTTP_BODY_LIMIT_BYTES | 104857600 | Tamaño máximo de solicitud |
Base de datos (PostgreSQL)
| Variable | Por defecto | Descripción |
|---|---|---|
POSTGRES_HOST | localhost | Host de la base de datos |
POSTGRES_PORT | 5432 | Puerto de la base de datos |
POSTGRES_USER | matcher | Nombre de usuario |
POSTGRES_PASSWORD | - | Contraseña |
POSTGRES_DB | matcher | Nombre de la base de datos |
POSTGRES_SSLMODE | disable | Modo SSL |
POSTGRES_MAX_OPEN_CONNS | 25 | Máximo de conexiones abiertas |
POSTGRES_MAX_IDLE_CONNS | 10 | Máximo de conexiones inactivas |
Caché (Redis)
| Variable | Por defecto | Descripción |
|---|---|---|
REDIS_HOST | localhost:6379 | Dirección de Redis |
REDIS_PASSWORD | - | Contraseña |
REDIS_DB | 0 | Índice de base de datos |
REDIS_POOL_SIZE | 10 | Tamaño del pool |
Mensajería (RabbitMQ)
| Variable | Por defecto | Descripción |
|---|---|---|
RABBITMQ_HOST | localhost | Host del broker |
RABBITMQ_PORT | 5672 | Puerto del broker |
RABBITMQ_USER | guest | Nombre de usuario |
RABBITMQ_PASSWORD | guest | Contraseña |
RABBITMQ_VHOST | / | Host virtual |
Autenticación
| Variable | Por defecto | Descripción |
|---|---|---|
AUTH_ENABLED | true | Habilitar autenticación |
AUTH_SERVICE_ADDRESS | - | URL del servicio de autenticación |
DEFAULT_TENANT_ID | - | ID de tenant por defecto |
DEFAULT_TENANT_SLUG | - | Slug de tenant por defecto |
Observabilidad
| Variable | Por defecto | Descripción |
|---|---|---|
OTEL_ENABLED | false | Habilitar OpenTelemetry |
OTEL_SERVICE_NAME | matcher | Nombre del servicio de trazas |
OTEL_EXPORTER_ENDPOINT | - | Endpoint del exportador OTLP |
TLS
| Variable | Por defecto | Descripción |
|---|---|---|
SERVER_TLS_CERT_FILE | - | Ruta del certificado TLS |
SERVER_TLS_KEY_FILE | - | Ruta de la clave privada TLS |
Verificar la instalación
Valida que Matcher esté operando correctamente.
Verificación de salud
Verificación de disponibilidad
Verificación de la API
Solución de problemas
Problemas comunes
Conexión rechazada a PostgreSQL
Conexión rechazada a PostgreSQL
- Causa: PostgreSQL no está ejecutándose o no es accesible.
- Resolución:
- Verifica que PostgreSQL esté ejecutándose:
docker-compose ps postgres - Revisa los valores de conexión en
.env - Prueba la conectividad:
nc -zv localhost 5432 - Revisa los logs:
docker-compose logs postgres
Tiempo de espera de conexión a Redis
Tiempo de espera de conexión a Redis
- Causa: Redis no está ejecutándose o las credenciales son incorrectas.
- Resolución:
- Verifica que Redis esté ejecutándose:
docker-compose ps redis - Confirma
REDIS_PASSWORD - Prueba la conectividad:
redis-cli -h localhost ping
Colas de RabbitMQ no creadas
Colas de RabbitMQ no creadas
- Causa: RabbitMQ todavía está inicializando o falta el host virtual.
- Resolución:
- Espera hasta que RabbitMQ esté saludable
- Accede a la interfaz de gestión en http://localhost:15672
- Verifica
RABBITMQ_VHOST
Errores de autenticación
Errores de autenticación
- Causa: El servicio de autenticación no es accesible o el token es inválido.
- Resolución:
- Verifica
AUTH_SERVICE_ADDRESS - Deshabilita la autenticación para desarrollo:
AUTH_ENABLED=false - Revisa los logs del servicio de autenticación
Migración fallida
Migración fallida
- Causa: Las migraciones de base de datos no pudieron aplicarse.
- Resolución:
- Verifica el estado de migración:
make migrate-status - Revisa los logs de migración
- Aplica las migraciones manualmente:
make migrate-up - Inspecciona la tabla
schema_migrationssi es necesario

