SMTP inbound — not yet implemented
The SmtpInboundProvider interface exists in
core/hailhq/core/providers/email/inbound/smtp.py
but is not implemented. It is the cloud-agnostic / OSS-only path.
We defer it to a follow-up milestone.
When it is released, this page will describe:
- the
mailbot/container (aiosmtpd-backed), parallel tovoicebot/ - listen ports + TLS configuration
- the "front me with Maddy or Postfix" production recipe for SPF / DKIM / DMARC verification and flood resistance
- self-host quickstart
Until then, use the SES-backed inbound path documented in
docs/setup/aws-ses.md. If you must avoid AWS, file an
issue that tracks your need. Then we can give the SMTP listener priority.
References
- Design spec:
docs/superpowers/specs/2026-06-06-inbound-email-design.md§2 - Provider interface:
core/hailhq/core/providers/email/inbound/base.py - Placeholder stub:
core/hailhq/core/providers/email/inbound/smtp.py
VM deployment
Self-host Hail on one Ubuntu VM behind HTTPS. GitHub Actions deploys every commit on main. The database is managed (Neon, Supabase, RDS, or your choice). The VM runs only the stateless services.
Contributing
For the full operational runbook (releases, deployment, DB switching, all the known problems), refer to Operations. This page covers the contribution flow only.