Turns any Ubuntu server into a fully functional mail server with one command.
Mail-in-a-Box is commonly used as a self-hosted alternative to Gmail, Outlook. Replacing a SaaS tool with a self-hosted equivalent lets you avoid recurring subscription fees, keep full control of your data, and continue working even when the original vendor changes pricing, ships limits, or shuts down.
License: CC0-1.0. Built with: Python, Shell, HTML, PHP, Handlebars. Website: https://mailinabox.email/. Source: https://github.com/mail-in-a-box/mailinabox.
Most self-hosted apps including Mail-in-a-Box install through Docker or Docker Compose. The typical workflow is: install Docker on your host, pull the official image (or clone the repository), supply a configuration file with database credentials and storage paths, then start the container. Many homelabbers run Mail-in-a-Box alongside other self-hosted services behind a reverse proxy like Caddy, Traefik, or nginx-proxy-manager for HTTPS and routing. Check the official repository for the most current instructions.
Self-hosting gives you three things SaaS can’t: data ownership (the files live on disks you control), cost predictability (a one-time setup vs. recurring per-seat fees that grow with your household or team), and longevity (open-source means the app keeps working even if the maintainers move on, since you can pin a working version). The trade-off is that you take on the operational work of running a server, applying updates, and handling backups.
Most self-hosted apps run comfortably on modest hardware — a Raspberry Pi 4, a mini PC, a NAS with Docker support, or a small VPS is usually enough for personal or family use. CPU and RAM requirements scale with how many simultaneous users or how much data you push through Mail-in-a-Box. Storage requirements depend on the kind of data you keep; check the README for guidance on data retention.