Catálogo de Servicios — Infra Modular
Cuadrante 03_REFERENCE — tabla técnica completa de todos los servicios de infraestructura. Para conectarte a ellos → ../02_HOW_TO/connect-to-infra.md Para entender la arquitectura → ../04_EXPLANATION/postgres-multitenancy.md
Última actualización: 2026-08-31 — Reserva Redis para Commerce
Módulo infra/core — Motor Central
| Container | Imagen | Puerto Host | Red(es) | Healthcheck | Volumen |
|---|---|---|---|---|---|
timeliber-postgres |
postgres:17-alpine |
5432 |
timeliber-net |
pg_isready cada 10s |
timeliber-postgres-data |
timeliber-redis |
redis:8.8.0-alpine |
6379 |
timeliber-net |
redis-cli ping cada 10s |
timeliber-redis-data |
DNS interno: timeliber-postgres, timeliber-redis
Archivo: ../../core/docker-compose.yml
Módulo infra/traefik — Proxy SSL
| Container | Imagen | Puerto Host | Red(es) | Healthcheck | Volumen |
|---|---|---|---|---|---|
timeliber-traefik |
traefik:v3.3 |
80, 443 |
proxy-net |
traefik healthcheck --ping cada 10s |
traefik-letsencrypt |
DNS interno: timeliber-traefik
Restart policy: always (único servicio que nunca debe bajar)
Archivo: ../../traefik/docker-compose.yml
Middlewares globales: ../../traefik/config/dynamic.yml
Módulo infra/ai — Inteligencia Artificial
| Container | Imagen | Puerto Host | Red(es) | Healthcheck | Volumen |
|---|---|---|---|---|---|
timeliber-qdrant |
qdrant/qdrant:v1.18.2 |
6333 |
timeliber-net, proxy-net |
GET /healthz cada 15s |
timeliber-qdrant-data |
DNS interno: timeliber-qdrant
Dominio público: qdrant.timeliber.com.co (protegido con BasicAuth + API Key)
Archivo: ../../ai/docker-compose.yml
Módulo infra/whatsapp — Comunicaciones
| Container | Imagen | Puerto Host | Red(es) | Healthcheck | Volumen |
|---|---|---|---|---|---|
timeliber-n8n |
n8nio/n8n:2.27.4 |
5678 |
timeliber-net, proxy-net |
GET /healthz cada 30s |
timeliber-n8n-data |
timeliber-evolution |
evoapicloud/evolution-api:2.2.3 |
8081→8080 |
timeliber-net, proxy-net |
GET / cada 30s |
(usa postgres) |
DNS interno: timeliber-n8n, timeliber-evolution
Dominios públicos: n8n.timeliber.com.co, evolution.timeliber.com.co
Archivo: ../../whatsapp/docker-compose.yml
Módulo infra/observability — Monitoreo LGTM
| Container | Imagen | Puerto Host | Red(es) | Propósito |
|---|---|---|---|---|
timeliber-alloy |
grafana/alloy:v1.17.0 |
4317, 4318, 12345 |
observability, timeliber-net |
Agente OTEL — recibe trazas/métricas de las apps |
timeliber-loki |
grafana/loki:3.7.0 |
3100 |
observability |
Backend de logs |
timeliber-tempo |
grafana/tempo:2.10.7 |
3200, 9095 |
observability |
Backend de trazas |
timeliber-mimir |
grafana/mimir:2.17.15 |
9009 |
observability |
Backend de métricas |
timeliber-grafana |
grafana/grafana:13.1.0 |
3001→3000 |
observability |
Dashboard unificado |
Archivo: ../../observability/docker-compose.yml
Bases de datos PostgreSQL
| Base de Datos | Usuario | Variable de contraseña | App que conecta |
|---|---|---|---|
timeliber |
timeliber_admin |
POSTGRES_PASSWORD |
Solo administración |
travel_db |
travel_user |
TRAVEL_DB_PASSWORD |
apps/travel/backend |
gastro_db |
gastro_user |
GASTRO_DB_PASSWORD |
apps/gastro/backend |
main_db |
main_user |
MAIN_DB_PASSWORD |
apps/main/backend |
finances_db |
finances_user |
FINANCES_DB_PASSWORD |
(módulo futuro) |
foveo_db |
foveo_user |
FOVEO_DB_PASSWORD |
apps/foveo/backend |
evolution_db |
evolution_user |
EVOLUTION_DB_PASSWORD |
infra/whatsapp (Evolution) |
n8n_db |
n8n_user |
N8N_DB_PASSWORD |
infra/whatsapp (n8n) |
commerce_db |
commerce_owner / commerce_runtime |
COMMERCE_DB_OWNER_PASSWORD / COMMERCE_DB_PASSWORD |
apps/commerce |
Scripts de creación: ../../postgres/init/
Bases de datos Redis (DB 0-15)
| DB # | Vertical | Tipo de datos |
|---|---|---|
0 |
Travel | Caché de disponibilidad y tarifas |
1 |
Evolution API | Sesiones activas de WhatsApp |
2 |
Gastro | Caché de menús y QR codes |
3 |
Main API | Sesiones de usuarios y JWT blocklist |
4 |
Foveo | Estado de análisis de visión artificial |
5 |
AI Orchestrator | Memoria a corto plazo de LangGraph |
6 |
RAG Studio | Caché de embeddings |
7 |
(disponible) | Reservado para vertical futura |
8 |
Commerce | Sesiones, estados OAuth y trabajos de integraciones |
9-15 |
(disponibles) | Reservados para verticales futuras |
Middlewares de Traefik disponibles
Definidos en ../../traefik/config/dynamic.yml.
Se aplican desde las labels de cualquier docker-compose.yml del monorepo.
| Nombre | Uso en labels | Propósito |
|---|---|---|
secHeaders@file |
traefik.http.routers.X.middlewares=secHeaders@file |
Headers OWASP (XSS, HSTS, Clickjacking) |
commerceApiHeaders@file |
Router API de Commerce | CSP sin contenido ni framing, HSTS y nosniff |
commerceWebHeaders@file |
Router web de Commerce | CSP same-origin y framing deshabilitado |
shopifyEmbeddedHeaders@file |
Router de TimeLiber Connect | Conserva el frame-ancestors dinámico emitido por Shopify; no añade X-Frame-Options: DENY |
globalRateLimit@file |
...middlewares=globalRateLimit@file |
Anti-DDoS: 100 req/s por IP |
compress@file |
...middlewares=compress@file |
Gzip/Brotli automático |
internalBasicAuth@file |
...middlewares=internalBasicAuth@file |
BasicAuth para servicios internos |
retry@file |
...middlewares=retry@file |
Reintento automático x3 en fallo |
circuitBreaker@file |
...middlewares=circuitBreaker@file |
Abre circuito si >30% de errores |
qdrant-auth@file |
...middlewares=qdrant-auth@file |
BasicAuth específico de Qdrant |
Servicios de Sistema y Respaldo
| Servicio / Timer | Ejecución | Propósito |
|---|---|---|
timeliber-backup.timer |
Diario 02:00 COT | Respaldo incremental y deduplicado de PostgreSQL (Restic CDC + AES-256) |
timeliber-renewals.timer |
Diario 03:00 COT | Renovaciones y cobros recurrentes de suscripciones |
timeliber-alerta-disco.timer |
Cada hora | Monitor de umbral de espacio en disco del host |
timeliber-limpieza-docker.timer |
Semanal (Domingos 04:30 COT) | Poda de imágenes y contenedores huérfanos |
Referencias
- ../02_HOW_TO/connect-to-infra.md — cómo conectar tu app
- ../02_HOW_TO/deploy-vps.md — despliegue en servidor nuevo
- ../02_HOW_TO/automated-backups.md — gestión y restauración de backups
- ../04_EXPLANATION/backup-architecture-and-deduplication.md — arquitectura de deduplicación CDC
- ../04_EXPLANATION/networks-architecture.md — redes Docker
- ../../postgres/init/ — scripts de inicialización de BD
Actualizado 2026-08-31. Si encuentras drift → registrar en infra/TECH_DEBT.md.