service-monitor/CLAUDE.md
reugenio e2e19da32f Fase 1: Monitor básico HTTP/TCP funcionando
- 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>
2025-12-07 20:43:34 +01:00

165 lines
4.3 KiB
Markdown

# 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 normas
- `NORMAS_TRABAJO_CONSENSUADAS.md` - Metodología fundamental
- `QUICK_REFERENCE.md` - Cheat sheet rápido
- `INFRASTRUCTURE/` - Documentación de servidores (IPs, puertos, servicios)
### Protocolo de Comunicación Entre Proyectos
1. **Al iniciar conversación**: Leer `TEAM_STANDARDS/LAST_UPDATE.md`
2. **Si modificas normas**: Actualizar `LAST_UPDATE.md` con fecha y cambios
3. **Commits**: Siempre a Forgejo (git.reugenio.com), nunca a GitHub
### Control de Versiones
```bash
# 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
```bash
# 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)
```bash
# 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)