- Verificación HTTP/HTTPS con std.http.Client - Verificación TCP con resolución DNS (tcpConnectToHost) - 5 servicios configurados: Forgejo (HTTP+SSH), Simifactu, Mundisofa, Menzuri - Output terminal con colores y tiempos de respuesta - Doc comments en todas las funciones públicas (estándar open source) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
4.3 KiB
4.3 KiB
service-monitor - Monitor de Servicios en Zig
Última actualización: 2025-12-07
Descripción del Proyecto
Monitor que verifica periódicamente que los servicios en nuestro servidor Hetzner (Simba) estén funcionando correctamente, con notificaciones si algo falla.
Lenguaje: Zig 0.13.0
Objetivo: Herramienta de monitoreo simple y ligera, sin dependencias de servicios externos como UptimeRobot.
Servicios a Monitorear
Servidor Simba (188.245.244.244)
| Servicio | URL/Puerto | Verificación |
|---|---|---|
| Forgejo | https://git.reugenio.com | HTTP 200 |
| Forgejo SSH | git.reugenio.com:2222 | Conexión TCP |
| Simifactu API | https://simifactu.com | HTTP 200 |
| Mundisofa | https://mundisofa.com | HTTP 200 |
| Menzuri | https://menzuri.com | HTTP 200 |
Funcionalidades Planificadas
Fase 1 - Básico
- Verificar HTTP status de URLs
- Verificar puertos TCP abiertos
- Output en terminal (estado actual)
Fase 2 - Monitoreo Continuo
- Modo daemon (corre en background)
- Intervalo configurable
- Log de eventos
Fase 3 - Notificaciones
- Notificación desktop (libnotify)
- Log a archivo
- Opcional: webhook/email
Stack Técnico
- Zig 0.13.0 - Lenguaje principal
- HTTP Client - std.http
- TCP Sockets - std.net
- Sin dependencias externas - Solo stdlib de Zig
Filosofía del Proyecto
- Binario único, pequeño, portable
- Puede correr en el servidor o en máquina local
- Sin dependencias de servicios cloud externos
- Consumo mínimo de recursos
Equipo y Metodología
Quiénes Somos
- Usuario: Desarrollador independiente, proyectos comerciales propios
- Claude: Asistente de programación (Claude Code)
Normas de Trabajo Centralizadas
IMPORTANTE: Todas las normas de trabajo están en:
/mnt/cello2/arno/re/recode/TEAM_STANDARDS/
Archivos clave a leer:
LAST_UPDATE.md- LEER PRIMERO - Cambios recientes en normasNORMAS_TRABAJO_CONSENSUADAS.md- Metodología fundamentalQUICK_REFERENCE.md- Cheat sheet rápidoINFRASTRUCTURE/- Documentación de servidores (IPs, puertos, servicios)
Protocolo de Comunicación Entre Proyectos
- Al iniciar conversación: Leer
TEAM_STANDARDS/LAST_UPDATE.md - Si modificas normas: Actualizar
LAST_UPDATE.mdcon fecha y cambios - Commits: Siempre a Forgejo (git.reugenio.com), nunca a GitHub
Control de Versiones
# Este proyecto
git remote: git@git.reugenio.com:reugenio/service-monitor.git (pendiente crear)
# Crear repo en Forgejo cuando esté listo el código inicial
Documentación del Sistema Local
El ordenador de trabajo está documentado en:
/home/re/cello/claude/claude.md
/home/re/cello/claude/docs/
Documentación del Servidor
Información detallada del servidor Simba:
/mnt/cello2/arno/re/recode/TEAM_STANDARDS/INFRASTRUCTURE/SERVIDOR_HETZNER.md
Estructura del Proyecto (Planificada)
service-monitor/
├── CLAUDE.md # Este archivo
├── src/
│ ├── main.zig # Punto de entrada
│ ├── checker.zig # Lógica de verificación
│ ├── http.zig # Cliente HTTP
│ ├── tcp.zig # Verificación TCP
│ ├── config.zig # Configuración de servicios
│ └── notify.zig # Sistema de notificaciones
├── build.zig # Sistema de build de Zig
├── services.json # Lista de servicios a monitorear (configurable)
└── README.md # Documentación de uso
Comandos Útiles
# Compilar
zig build
# Ejecutar verificación única
zig build run
# Modo daemon
zig build run -- --daemon --interval 60
# Release para servidor
zig build -Doptimize=ReleaseFast -Dtarget=x86_64-linux
Ejemplo de Uso (Planificado)
# Verificar todos los servicios una vez
$ service-monitor check
✅ git.reugenio.com - 200 OK (45ms)
✅ git.reugenio.com:2222 - TCP OK (12ms)
✅ simifactu.com - 200 OK (89ms)
✅ mundisofa.com - 200 OK (67ms)
✅ menzuri.com - 200 OK (72ms)
# Modo watch (cada 60 segundos)
$ service-monitor watch --interval 60
Notas de Desarrollo
Esta sección se irá llenando conforme avance el proyecto
Estado: Proyecto nuevo, pendiente iniciar desarrollo (después de forgejo-cli)