Sessy – Amazon SES Observability
Observabilidad de Amazon SES de solo lectura: busca eventos, inspecciona rebotes y obtén estadísticas de entrega.
Documentación
Sessy
Observabilidad de correo electrónico de código abierto para AWS SES por Marc Köhlbrugge.
¿Qué es Sessy?
Amazon SES es un servicio de correo electrónico fantástico: rentable, confiable y con una gran entregabilidad. Pero es frustrantemente difícil ver qué está sucediendo realmente con tus correos.
Por eso muchas personas recurren a servicios de correo sobrevalorados que a menudo son solo envoltorios glorificados de SES con una interfaz bonita. Terminas pagando mucho por algo que podrías hacer tú mismo.
Sessy es la alternativa de código abierto. Usa SES directamente y aun así obtén una interfaz hermosa para ver qué sucede después de presionar enviar: entregas, rebotes, quejas, aperturas, clics y más.
Ejecutar tu propia instancia de Sessy
La forma más fácil de ejecutar Sessy es con Docker:
docker run -p 80:80 \
-e SECRET_KEY_BASE=$(openssl rand -hex 64) \
-e DISABLE_SSL=true \
-v sessy:/rails/storage \
ghcr.io/marckohlbrugge/sessy:main
Consulta la documentación de despliegue con Docker para conocer todas las opciones de configuración.
¿Quieres desplegar tu propia versión modificada? Consulta la documentación de despliegue con Kamal para desplegar desde un fork.
¿Usas Dokku? Consulta la documentación de despliegue con Dokku.
¿Necesitas ayuda para configurar AWS SES? Consulta la guía de configuración de AWS SES.
Para recomendaciones de endurecimiento, consulta las mejores prácticas de seguridad y entregabilidad de SES.
Servidor MCP para agentes de IA
Sessy incluye un servidor MCP en /mcp, para que los agentes de codificación de IA (Claude Code, Cursor, Codex) puedan consultar tus datos de correo: buscar eventos, inspeccionar la línea de tiempo completa de entrega de un mensaje con diagnósticos de rebote y obtener estadísticas agregadas. Todas las herramientas son de solo lectura.
Crea una clave de API en la página API keys de la interfaz web y luego sigue las instrucciones de conexión en /docs/mcp de tu instancia. Por ejemplo, para Claude Code:
claude mcp add --transport http sessy https://your-sessy-host/mcp \
--header "Authorization: Bearer YOUR_API_KEY"
Dos cosas que vale la pena saber:
- Usuarios de Cloudflare / CDN: la protección contra bots (desafíos gestionados) bloquea a los clientes MCP. Exime la ruta
/mcpde la protección contra bots o las solicitudes de los agentes fallarán. - Autenticación HTTP Basic:
/mcpautentica solo con claves de API e ignoraHTTP_AUTH_*. Habilitar HTTP Basic más tarde no revoca las claves de API creadas previamente: revisa la página de claves de API después de asegurar una instalación.
Versión alojada
Estamos trabajando en una versión gestionada de Sessy para quienes prefieren no ejecutar su propia instancia.
Notarás referencias a ella en este código: un directorio saas/, Gemfile.saas y la verificación ocasional de Sessy.saas?. Estos impulsan la versión alojada y se mantienen intencionalmente en este repositorio por simplicidad, en lugar de mantener repositorios separados. Nada de esto afecta el autoalojamiento: el paquete predeterminado ignora por completo el motor saas/ y el conjunto de pruebas verifica que la versión de código abierto se comporte de manera idéntica sin él.
Panel de trabajos
Sessy usa Solid Queue para trabajos en segundo plano. Hay un panel web disponible en /jobs para monitorear colas, reintentar trabajos fallidos y ver tareas recurrentes.
Desarrollo
Eres bienvenido a modificar Sessy a tu gusto.
Para comenzar:
bin/setup
bin/dev
Contribuciones
¡Agradecemos las contribuciones! Como todavía estamos en una etapa muy temprana, ten en cuenta lo siguiente:
- Errores tipográficos y bugs evidentes: No dudes en enviar un PR directamente.
- Cambios de código: Intenta seguir nuestro estilo existente.
- Nuevas funciones: Abre primero un issue para discutirlo antes de implementarlo.
- Documentación de despliegue: Mantenemos la documentación de despliegue de primera parte enfocada en rutas amplias, abiertas y autoalojadas que usamos activamente (por ejemplo, Docker, Kamal y Dokku). Generalmente no agregamos guías de despliegue específicas de proveedores a este repositorio.
Para cualquier cosa más allá de pequeñas correcciones, abre primero un issue para que nadie pierda tiempo en algo que podríamos no fusionar.
Licencia
Sessy se publica bajo la Licencia O'Saasy, excepto donde un subdirectorio especifique lo contrario (por ejemplo, los paquetes de complementos de Claude y Cursor son MIT).
Inspiración
Sessy se inspiró en gran medida en Fizzy y estamos agradecidos con 37signals por abrir el código de su base de código.