§2024-10-31
¶What does it do?
This install script installs and configures the following components:
- WildDuck Mail Server for IMAP and POP3 2, Haraka with WildDuck plugin for incoming email
- ZoneMTA with WildDuck plugin for outbound email
- WildDuck Webmail for creating accounts and viewing messages
- Nginx to serve the webmail component
- acme.sh to manage Let's Encrypt certificates
- Rspamd to check messages for spam. Messages detected as spam are routed to Junk Mail folder by default
- ClamAV to check messages for viruses.
ClamAV is disabled by default, you need to enable it in the Haraka plugins file
- Unprivileged Deploy user to easily checkout and publish code changes via git
- ufw firewall to only allow public ports (so make sure your ssh runs on port 22 or otherwise change the install script first)
¶What it does not configure:
DNS settings. These you need to handle yourself. See domainname-nameserver.txt file after installation for DNS configuration (includes DKIM)
¶Security
All components use TLS/HTTPS with Let's Encrypt certificates by default. Webmail component allows to set up two factor authentication (both TOTP and U2F). If 2FA is enabled then you can also generate application specific passwords for external applications (eg. for the IMAP client) from the Webmail interface as master password can not be used in that case.
- start a newly build hc4Noble.yushei.net, a blank one
alexlai@hc4Noble:~/build/WildDuck$ pwd
/home/alexlai/build/WildDuck
$ wget -O - https://raw.githubusercontent.com/nodemailer/wildduck/master/setup/get_install.sh | bash
$ ls
00_install_global_functions_variables.sh 05_install_packages.sh 10_install_wildduck_webmail.sh 15_install_deploy.sh
01_install_commits.sh 06_install_enable_services.sh 11_install_nginx.sh install.sh
02_install_prerequisites.sh 07_install_wildduck.sh 12_install_ufw_rules.sh
03_install_check_running_services.sh 08_install_haraka.sh 13_install_ssl_certs.sh
04_install_import_keys.sh 09_install_zone_mta.sh 14_install_start_services.sh
$ sudo ./install.sh hc4Noble.yushei.net mail.hc4Noble.yushei.net >log 2>&1
# from other terminal
$ tail -f log
DOMAINNAME: hc4Noble.yushei.net, HOSTNAME: mail.hc4Noble.yushei.net