Ctrl K
ComunidadGuías…
GITHUB · ANALIZADO

posthorn

Posthorn es una capa unificada de correo saliente auto-alojada que actúa como gateway entre aplicaciones self-hosted y proveedores de email transaccional (Postmark, Resend, Mailgun, AWS SES o SMTP outbound). Proporciona tres formas de ingreso: HTTP form, HTTP API y SMTP listener.

Ficha actualizada 19 sept 2026, 2:32 · upstream 19 sept 2026, 2:32 · release v1.2.0

Ver códigoProblemas y ayudaRepositorio ↗Sitio oficial
00

Qué es posthorn

Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.

Posthorn es una capa unificada de correo saliente diseñada para proyectos auto-alojados. Actúa como gateway único entre todas las aplicaciones que self-hosteas y el proveedor de email transaccional que ya hayas elegido. Ofrece tres formas de ingreso: HTTP form (para formularios de contacto, signups, alertas webhooks), HTTP API (para workers, cron jobs, servicios internos) y SMTP listener (para Ghost, Gitea, Mastodon, Matrix, NextCloud, Authentik).

El proyecto está escrito en Go 1.25+ y se distribuye como un único binario Go o imagen Docker distroless multi-arch. Utiliza una única configuración TOML para definir endpoints, transportes y límites de tasa. No requiere servidor de correo propio ni gestión de claves DKIM/SPF/DMARC — delega eso al proveedor elegido.

Soporta cinco transportes: Postmark, Resend, Mailgun, AWS SES (con SigV4 bespoke) y outbound-SMTP relay. Cada transporte implementa la misma interfaz Transport, permitiendo cambiar de proveedor con una edición TOML. Incluye endpoints /healthz y /metrics para Prometheus.

CASOS DE USO
  • Formularios de contacto en sitios web self-hosted (Hugo + Comentario) con honeypot, Origin/Referer y rate limit
  • Envío de emails transaccionales desde workers, cron jobs o servicios internos mediante HTTP API con autenticación Bearer
  • Integración con aplicaciones SMTP nativas como Ghost, Gitea, Mastodon, Matrix, NextCloud, Authentik vía listener en puerto 2525
  • Emails de reset de contraseña desde Cloudflare Workers sin dependencias de cliente SDK
  • Digestes de cron para Umami y otras herramientas de analítica self-hosted
PUNTOS DESTACADOS
  • Single Go binary con única configuración TOML — despliegue simplificado
  • Tres formas de ingreso (HTTP form, HTTP API, SMTP) convergen en un mismo transport.Message
  • Cinco transportes soportados: Postmark, Resend, Mailgun, AWS SES y outbound-SMTP relay
  • Idempotencia con keys por solicitud y retries automáticos (1 retry 5xx/429, timeout 10s)
  • Endpoints /healthz y /metrics para monitoring Prometheus sin configuración adicional
  • No requiere servidor de correo propio — delega SPF/DKIM/DMARC al proveedor elegido
PRECAUCIONES
  • Requiere Go 1.25+ (versión futura según documentación actual)
  • No es un servidor de correo: no almacena mailbox, ni IMAP/JMAP, ni gestión de claves DKIM
  • No es infraestructura outbound propia — relaya a través del proveedor elegido sin gestionar reputación IP
  • No es plataforma de marketing: sin gestión de listas, segmentación o dashboard de campañas
  • No incluye UI webmail para lectura de correo
01

Perfil de infraestructura

Estimación inicial derivada del repositorio y de los servicios detectados.

CPU1 vCPUrecomendación inicial
MEMORIA1 GBRAM estimada
DISCO10 GBalmacenamiento base
COMPLEJIDADlownivel de operación
02

Despliegue detectado

Qué señales reales de instalación hemos encontrado.

Despliegue manual

Configurar DNS SPF, DKIM y DMARC en el dominio de envío. Ejecutar detrás de reverse proxy (Caddy, nginx, Traefik) — Posthorn no termina TLS. Para endpoints HTTP form, configurar allowed_origins y rate_limit. Si está detrás de reverse proxy, definir trusted_proxies con CIDR del proxy o preset cloudflare. Wire healthcheck a /healthz y Prometheus scrape a /metrics.

—Dockerfile
—Compose
—One-click
03

Stack y dependencias

Componentes inferidos a partir de manifests, configuración y documentación.

FRAMEWORKS
Python
SERVICIOS
No detectados
BASES DE DATOS
No detectadas
PUERTOS
8080
06

Experiencia real de la comunidad

Ayuda a contrastar la estimación automática con instalaciones reales.

Todavía no hay datos comunitarios para este proyecto.