Postal open-source mail server (16k stars): transactional SMTP, webhooks, and delivery tracking. Production setup on Liquid Web with MySQL and RabbitMQ.
One docker-compose.yml deploys Authentik (SSO) + Plausible (analytics) + Postal (SMTP) + shared PostgreSQL + MySQL + ClickHouse + RabbitMQ + Redis + Caddy; Coolify installs separately via its own script
Measured idle RAM: ~4.6 GB total across the host (our Compose stack + Coolify's stack)
Minimum Liquid Web tier: 16 GB Managed VPS (~$50/mo) — the 16 GB gives comfortable room for apps you deploy through Coolify
Vercel Pro ($20/mo) + Auth0 Essentials ($23/mo) + Postmark ($15/mo) = $58/mo just for foundations; this stack: ~$50/mo with unlimited apps, SSO, pageviews, and email
This is the "meta stack" — the infrastructure layer you deploy before anything else. Every other self-hosted app you run needs a place to live (Coolify), a way to log users in (Authentik), a way to measure traffic (Plausible), and a way to send email (Postal, the open-source SMTP platform). This guide wires all four together on a single Liquid Web 16 GB VPS as a reusable foundation.
Requires an 8 GB VPS with a dedicated IP — self-hosted email is an ops commitment, not a drop-in replacement
Replaces Mailchimp Essentials ($20/mo) + Postmark ($15/mo for 10k emails) with unlimited sending at ~$33/mo VPS + dedicated IP
Postal requires MySQL 8.0 and RabbitMQ — read the first-run section carefully before starting
This guide deploys a three-layer self-hosted email stack: Listmonk handles subscriber lists and campaign management, Postal provides the SMTP delivery engine with bounce processing and DKIM signing, and Billionmail monitors IP reputation and blacklist status. Together they replace the Mailchimp + Postmark combination for teams that want full control over their email infrastructure.