One-click deployment of your own mail server and personal cloud (so to speak).
This is a work-in-progress to create a one-click deployment of a personal mail server.
This draws heavily on the "NSA-proof your email in 2 hours" blog post by Drew Crawford (http://sealedabstract.com/code/nsa-proof-your-e-mail-in-2-hours/) and Sovereign by Alex Payne (https://github.com/al3x/sovereign). I've made some tweaks to their setups.
After spinning up a fresh Ubuntu machine, just run `sudo scripts/start.sh` and you get:
* An SMTP server (postfix) for sending/receiving mail, with STARTTLS required for authentication.
* An IMAP server (dovecot) for checking your mail, with SSL required.
* Mailboxes and aliases are configured by a command-line tool.
* Spam filtering (spamassassin) with spam automatically going to your Spam folder, and moving mail in and out of the Spam folder triggers retraining on the message.
* DKIM signing on outgoing messages.
* DNS pre-configured for SPF and DKIM (just set your domain name nameservers to be the machine itself).
Other things I'd like to add in the future are webmail, personal cloud services (file storage, calendar, etc.), an OpenID provider, a place for putting a simple homepage, support for Ubuntu cloud-init, etc.
The goals of this project are:
* Make the deployment of a mail server ridiculously easy.
* Configuration must be automated, concise, auditable, and idempotent.
* Promote decentralization and encryption on the web.
This project was inspired in part by the "NSA-proof your email in 2 hours" blog post by Drew Crawford (http://sealedabstract.com/code/nsa-proof-your-e-mail-in-2-hours/), Sovereign by Alex Payne (https://github.com/al3x/sovereign), and converstions with friends.
This setup is currently what's powering my own personal email.
Before You Begin
Before You Begin
----------------
----------------
...
@@ -47,11 +66,9 @@ You will be asked to enter the hostname you chose and the public IP address of t
...
@@ -47,11 +66,9 @@ You will be asked to enter the hostname you chose and the public IP address of t
After that you'll see a lot of output as system programs are installed and configured.
After that you'll see a lot of output as system programs are installed and configured.
At the end you'll be asked to create a mail user for the system. Enter your email address. It doesn't have to be @... the hostname you chose earlier, but if it's not then every email address on that domain will have to be handled by your hostname.
At the end you'll be asked to create a mail user for the system. Enter your email address. It doesn't have to be @... the hostname you chose earlier, but if it's not then your DNS setup will be more complicated. The user's email address is also his/her IMAP/SMTP username. Then enter the user's password.
Enter the user's email address (which is also his IMAP/SMTP username) and then its password.
It is safe to run the start script again in case something went wrong.
It is safe to run the start script again in case something went wrong. To add more mail users, run `tools/mail.py`.