This repo contains a Bash script that provisions a minimal mail server on a Debian/Ubuntu-like system:
- Postfix (SMTP, submission)
- Dovecot (IMAP, LMTP, virtual maildirs)
- Rspamd (spam, DKIM signing)
- MariaDB (for Roundcube)
- Roundcube (webmail)
- Nginx (TLS terminator for Roundcube)
- Let’s Encrypt paths pre-wired
It’s based on real, working manual steps, rewritten to be repeatable.
- sets the hostname to
mail.YOURDOMAIN - installs all required packages
- creates a
vmailsystem user (uid/gid 5000) - configures Dovecot to use virtual Maildir under
/var/mail/vmail/%d/%n - creates users
admin@domainandinfo@domainin/etc/dovecot/passwd - configures Postfix for virtual mailboxes and LMTP to Dovecot
- wires Postfix to Rspamd using milter
- prepares Roundcube with MariaDB backend
- creates Nginx vhost for
https://mail.domain - creates maildirs and sets permissions
- Fresh Debian/Ubuntu server
- A real domain, e.g.
example.com - DNS A record:
mail.example.com -> your_server_ip - Let’s Encrypt certificate present (or you run
certbotyourself) - Port 80/443/25/587/993 open
git clone https://github.com/AliEdd1/mail_server_roundcube.git
cd mail_server_roundcube.git
sudo bash mail.sh