Sessy – Amazon SES Observability
Observabilidade somente leitura do Amazon SES: pesquise eventos, inspecione rejeições e obtenha estatísticas de entrega.
Documentação
Sessy
Observabilidade de e-mail open-source para AWS SES por Marc Köhlbrugge.
O que é o Sessy?
O Amazon SES é um serviço de e-mail fantástico: econômico, confiável e com ótima entregabilidade. Mas é frustrantemente difícil ver o que realmente está acontecendo com seus e-mails.
É por isso que muitas pessoas recorrem a serviços de e-mail superfaturados que, muitas vezes, são apenas wrappers de SES com uma interface bonita. Você acaba pagando muito por algo que poderia fazer você mesmo.
Sessy é a alternativa open-source. Use o SES puro e ainda tenha uma interface bonita para ver o que acontece depois que você clica em enviar: entregas, rejeições, reclamações, aberturas, cliques e muito mais.
Executando sua própria instância do Sessy
A maneira mais fácil de executar o Sessy é com 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
Consulte a documentação de implantação com Docker para opções de configuração completas.
Quer implantar sua própria versão modificada? Consulte a documentação de implantação com Kamal para implantar a partir de um fork.
Usando Dokku? Consulte a documentação de implantação com Dokku.
Precisa de ajuda para configurar o AWS SES? Consulte o guia de configuração do AWS SES.
Para recomendações de endurecimento, consulte boas práticas de segurança e entregabilidade do SES.
Servidor MCP para agentes de IA
O Sessy inclui um servidor MCP em /mcp, para que agentes de codificação de IA (Claude Code, Cursor, Codex) possam consultar seus dados de e-mail: pesquisar eventos, inspecionar a linha do tempo completa de entrega de uma mensagem com diagnósticos de rejeição e obter estatísticas agregadas. Todas as ferramentas são somente leitura.
Crie uma chave de API na página API keys na interface web e siga as instruções de conexão em /docs/mcp na sua instância. Por exemplo, para Claude Code:
claude mcp add --transport http sessy https://your-sessy-host/mcp \
--header "Authorization: Bearer YOUR_API_KEY"
Duas coisas que vale a pena saber:
- Usuários de Cloudflare / CDN: a proteção contra bots (desafios gerenciados) bloqueia clientes MCP. Isente o caminho
/mcpda proteção contra bots ou as solicitações do agente falharão. - Autenticação HTTP Basic:
/mcpautentica apenas com chaves de API e ignoraHTTP_AUTH_*. Ativar o HTTP Basic posteriormente não revoga chaves de API criadas anteriormente — revise a página de chaves de API após proteger uma instalação.
Versão hospedada
Estamos trabalhando em uma versão gerenciada do Sessy para aqueles que preferem não executar sua própria instância.
Você notará referências a ela neste código: um diretório saas/, Gemfile.saas e a verificação ocasional de Sessy.saas?. Eles alimentam a versão hospedada e são mantidos intencionalmente neste repositório por simplicidade, em vez de manter repositórios separados. Nada disso afeta o self-hosting: o pacote padrão ignora o mecanismo saas/ completamente, e a suíte de testes verifica se a versão open-source se comporta de forma idêntica sem ele.
Painel de jobs
O Sessy usa Solid Queue para jobs em segundo plano. Um painel web está disponível em /jobs para monitorar filas, tentar novamente jobs com falha e visualizar tarefas recorrentes.
Desenvolvimento
Você é bem-vindo para modificar o Sessy como quiser.
Para começar:
bin/setup
bin/dev
Contribuindo
Aceitamos contribuições! Como ainda estamos em um estágio muito inicial, por favor, tenha em mente o seguinte:
- Erros de digitação e bugs óbvios: Sinta-se à vontade para enviar um PR diretamente.
- Alterações de código: Tente corresponder ao nosso estilo existente.
- Novos recursos: Abra uma issue primeiro para discutir antes de implementar.
- Documentação de implantação: Mantemos a documentação de implantação de primeira parte focada em caminhos amplos, abertos e self-hosted que usamos ativamente (por exemplo, Docker, Kamal e Dokku). Geralmente não adicionamos guias de implantação específicos de provedores a este repositório.
Para qualquer coisa além de pequenas correções, abra uma issue primeiro para que ninguém perca tempo com algo que podemos não mesclar.
Licença
O Sessy é lançado sob a Licença O'Saasy, exceto onde um subdiretório especifica o contrário (por exemplo, os pacotes de plugins Claude e Cursor são MIT).
Inspiração
O Sessy foi fortemente inspirado por Fizzy e somos gratos à 37signals por abrir o código-fonte deles.