server-configs
Qué es
El repositorio que define cómo se ejecuta todo lo demás en el servidor de producción: los workers de cola que mantienen vivo el procesamiento asíncrono, y las entradas de cron que disparan los schedulers de las aplicaciones.
No contiene código de aplicación. Contiene la configuración que hace que las aplicaciones funcionen.
Empieza aquí al diagnosticar
Cuando algo automático no ocurrió en cualquier sistema del ecosistema, la respuesta suele estar en este repositorio: o el cron no corrió, o el worker estaba caído.
Tipo de sistema
| Campo | Valor |
|---|---|
| Tipo | Infraestructura |
| Tecnologías | Supervisor · cron · Bash · GitHub Actions |
| Base de datos | No aplica |
| Ejecución | Servidor Linux de producción |
Estado documental
- Estado: Borrador
- Última actualización: 2026-08-02
- Owner: Pendiente
- SME requerido: DevOps / infraestructura
- Fuente resumida: configuración de Supervisor, crontab, script de respaldo y flujos de despliegue del repositorio.
Qué gestiona
| Componente | Para qué |
|---|---|
| Configuración de Supervisor | Define un programa por worker de cola, por servicio y por participante. |
| Crontab | Ejecuta el scheduler de Laravel cada minuto y lanza los respaldos semanales. |
| Script de respaldo de base de datos | Genera un volcado comprimido y lo sube a S3. |
| Flujos de GitHub Actions | Despliegan estos archivos al servidor por SSH/SCP. |
Estructura
.github/workflows/ despliegue de configuración y de respaldos
infraestructure/
cron/crontab entradas de cron del servidor
supervisor/ definición de los workers de cola
scripts/ script de respaldo de base de datos
secrets/ archivos de variables, vacíos en el repositorioEl directorio está escrito
infraestructure. Es un error de ortografía heredado; cambiarlo exige actualizar los flujos de despliegue al mismo tiempo.
Los secretos no viven aquí
Los archivos bajo secrets/ están vacíos en el repositorio. Los valores reales viven en GitHub Secrets, en archivos locales del servidor o en AWS Secrets Manager. Nunca deben comprometerse al repositorio.
Workers gestionados
Un programa de Supervisor por cola. Los códigos de participante se representan aquí como CXXX.
| Programa | Servicio | Conexión | Cola |
|---|---|---|---|
| Worker por omisión | sy-energy | sqsfifo | Cola por omisión |
| Sincronización de ECD | sy-energy | sqsfifo | EcdSync-prod-CXXX.fifo |
| Documentos de CENACE | sy-energy | sqsfifo | CenaceBalance-CXXX-prod.fifo |
| Cola en base de datos | sy-energy | database | Cola por omisión |
| CFE TX | sy-energy | sqscustom | CfeTx{participante}-prod.fifo |
| Sincronización de demanda | demand-sync-service | Por omisión | Cola por omisión |
| API del MEM | mem-api | sqsMem | Cola por omisión |
| Respuestas de tarifas CFE | cfe-rates-microservice | sqsResponse | CfeRatesResponse-prod |
Hay un juego de workers de sy-energy por participante. Un participante puede tener workers arriba mientras otro los tiene caídos, y el síntoma solo se ve en una instancia.
Comportamiento común de los workers: arranque automático, reinicio automático, límite de tiempo de vida y de trabajos por proceso, y espera prolongada al detenerse para no interrumpir trabajos en curso.
Relación con otros sistemas
Este repositorio no se comunica con nadie: habilita a los demás.
| Sistema | Qué depende de aquí |
|---|---|
sy-energy | Su scheduler y todos sus workers. |
mem-api | Su scheduler y su worker. |
demand-sync-service | Su worker. |
cfe-rates-microservice | Su worker de respuestas. |
Ambientes y despliegue
Los cambios se despliegan con GitHub Actions, copiando los archivos al servidor por SSH/SCP. Hay un flujo para la configuración de Supervisor y cron, y otro para el script de respaldo.
Un cambio aquí afecta a todos los servicios
Un error en la configuración de Supervisor puede dejar sin workers a varios sistemas a la vez. Después de desplegar, verificar el estado de todos los programas, no solo del que se modificó.
Riesgos y gaps
- No hay alerta cuando un worker cae o cuando el cron se detiene.
- Los archivos de secretos existen vacíos en el repositorio, lo que invita a llenarlos por error.
- No están documentadas las versiones de PHP y Laravel de cada servicio gestionado.
- Coexisten dos mecanismos de respaldo de base de datos. Ver Operación.
Próxima revisión
Tras la validación de DevOps.