From bcf94fc0a3a648d9d539842e3d97cc65387b9e5e Mon Sep 17 00:00:00 2001 From: myve Date: Sat, 10 Aug 2024 05:02:15 +0000 Subject: [PATCH] Add README.md --- README.md | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..ca171f6 --- /dev/null +++ b/README.md @@ -0,0 +1,66 @@ +# MyveMail + +All-in-one docker container to host your own personal mail server, powered by Postfix mail transfer agent, Dovecot mail delivery agent, MariaDB database and Nginx web server. Webmail client is provided by [Roundcube](https://github.com/roundcube/roundcubemail) and management is provided by [PostfixAdmin](https://github.com/postfixadmin/postfixadmin). Mail domain services include OpenDKIM and OpenDMARC. + +*Note: ISP must have SMTP Port 25 open.* + +## :: Pre-installation +Update your DNS registry to reflect the following records +``` +# MX Record +@ 300 IN MX 0 ${subdomain}.${domain}. + +# A Record +${subdomain} 300 IN A ${server-ip-address} + +# TXT Records +@ 300 IN TXT "v=spf1 mx ~all" +${subdomain} 300 IN TXT "v=spf1 a ~all" +_dmarc 300 IN TXT "v=DMARC1; p=none; pct=100; fo=1; rua=mailto:dmarc@${domain}" +default._domainkey 300 IN TXT "v=DKIM1; h=sha256; k=rsa; p=${opendkim-key}" + +# CNAME Records +autoconfig 300 IN CNAME ${subdomain}.${domain}. +autodiscover 300 IN CNAME ${subdomain}.${domain}. +``` +Example entries: +``` +server-ip-address= # Host IPv4 address +subdomain=mail +domain=website.com +opendkim-key= # Provided by mail.sh +``` + +## :: Installation +Clone this repo and build it locally or pull it on the registry specified in docker-compose.yaml: + +``` +git clone https://myvelabs.com/docker/mail.git +``` + +Supply the variables asked for in nginx-setup.sh and generate-env.sh. + +Run **nginx-setup.sh** to generate the proxy and Letsencrypt certificates to be used by Postfix and Dovecot. + +Run **generate-env.sh** for a functional docker-compose env file. + +Initialize the docker container with the setup script. This installs the MariaDB database and adds the postmaster and mail user. + +*Note: The container will fail if this step is skipped.* + +``` +docker compose run --rm --interactive -t myvemail setup +``` + +Once completed, the container may be brought up: + +``` +docker compose up --detach +``` + +## :: Post-installation +Once the server comes back online, services can be accessed through: +``` +Roundcube: https://${subdomain}.${domain}/ (eg, https://mail.website.com/) +PostfixAdmin: https://${subdomain}.${domain}/admin/ (eg, https://mail.website.com/admin/) +``` \ No newline at end of file