Last Updated: 01 February 2020
By Maynard Paton

Introduction to Installing
Sendy and Virtualmin on AWS






Welcome to my guide to Installing Sendy and Virtualmin on Amazon Web Services (AWS). I hope you find it useful.

Please read the following notes carefully. You will need to make a few decisions before starting.

Furthermore, please understand the limits of this guide. In particular, the instructions show just one way to install Sendy and Virtualmin on AWS — they do not pretend to describe the optimum software and security solution!

The end result

Complete this guide and you will end up with an AWS t2.micro EC2 server (or ‘instance’) running:

Ubuntu 16.04 LTS
Nginx 1.10
MySQL 5.7
PHP 7.0

This particular ‘LEMP stack’ is dictated by the Virtualmin installation process. Sendy will of course be installed, too.

My guide has been developed courtesy of the following sources:

Amazon Web Services

Tharindu Kumara

The relevant source pages are included within the guide. Instructions have also been deduced from general Internet searches and my own Sendy/Virtualmin/AWS set-up.

No fancy technical insights are provided or required. The guide does not lead to a radical installation, and everything can be performed by anybody with modest IT skills. The main requirement is being able to read instructions carefully and thoroughly! 

IMPORTANT! Please read the following notes BEFORE you start!

This guide has been published to help ordinary UK bloggers send their WordPress newsletters at low cost.

The primary aim is to get you up and running with Sendy on AWS as easily as possible — not to define the very best system/server combination to employ.

Other Linux distributions (such as CentOS), other webservers (such as Apache), other database systems (such as MariaDB), and later versions of PHP (such as 7.2), could be utilised instead.

Indeed, some of those replacements can be combined to make a more efficient set-up, alongside different AWS server-types, too. You may wish to investigate alternative set-ups if your mailing lists are particularly large and you wish Sendy to enjoy very high processing efficiency.

This guide includes instructions to install Virtualmin because this control-panel package offers several major benefits: 

1) The installation process delivers a ready-made 'LEMP stack' able to host websites;
2) The subdomain and SSL certificate used to host and secure Sendy are easily created;
3) Maintaining your server through Virtualmin's interface should be straightforward, and;
4) Creating and hosting WordPress sites alongside Sendy should be possible.  

For now, the Virtualmin set-up is aimed purely at hosting Sendy and does not include instructions for features such as hosting other websites, creating DNS zones and receiving incoming email.  


This guide instructs you to create a fresh AWS server. Installing Virtualmin on an existing server with applications already running is very likely to cause major problems.  

For enhanced security, AWS can restrict which IP addresses can access certain routes to your server.

My guide utilises this feature, and I recommend you follow these instructions on the computer/IP address on which you are most likely to access AWS and Virtualmin in future.

You may wish to investigate additional security measures should potential data breaches be a particular concern.

I have created my own ‘testdemo’ Sendy and Virtualmin installation on an AWS server using this guide, and the same instructions should work for you.

That said, I provide no guarantee that the instructions will work — you follow my guide at your own risk! Although my ‘testdemo’ Sendy set-up appears to work in an initial TEST environment, the set-up has not been used within a full working LIVE environment.

Please read every part of this guide first before you start — that way you will find the guide much easier to complete.

Make sure you finish each part of the guide before starting on the next part. The whole process is likely to take at least three hours.

The screenshots and instructions within this guide are based on using an Apple Mac that runs OS X 10.9.4. There is no separate Windows guide — sorry about that.

You will need to have an AWS account created before you start (note: your account may not be opened immediately). Please read Get Started With AWS for instructions on how to open an AWS account.

You may also wish to request an increase to your initial AWS SES sending limit before you start. New AWS SES customers can send only 200 emails in any 24-hour period until a higher limit is granted. Please read Increasing Your Initial AWS SES Sending Limit for instructions on how to request a higher limit.

My guide involves three software packages that you may not be familiar with:

1) An SSH client:

You will need to issue commands to your AWS server through an SSH client.

Apple Mac users can use the Terminal facility. Older versions of Windows may require PuTTY to be downloaded to gain SSH access. Later versions of Windows may have OpenSSH already installed.  Either way, Windows users must establish which SSH client to employ before starting.

2) An SFTP client:

You will need to transfer files to your AWS server using an SSH File Transfer Protocol client. My guide uses Cyberduck, which is available for Apple Macs and Windows. A popular alternative is FileZilla. You will need to have SFTP software downloaded and installed on your computer before your start.

3) A Linux text editor:

You will need to use a Linux text editor to amend files on your AWS server. My guide uses the nano command, which in installed by default on the chosen Ubuntu platform and is one of the simpler Linux editors. I recommend reading articles such as this and having cheatsheets such as this to hand before you start. 

My guide uses the following definitions:

Your Licensed Sendy Domain
Your Chosen Subdomain
Your Sendy Installation URL
Your Virtualmin Installation URL
Your AWS Region

Your Webhost
Your Webhost’s Control Panel

Your Unzipped Sendy Code Folder

These definitions are italicised throughout the guideHere is what they all mean:

Your Licensed Sendy Domain

 The domain name you entered when you purchased Sendy:

Throughout this guide, the licensed Sendy domain used is

Your Chosen Subdomain

You need to choose a suitable subdomain before starting.

Sendy is typically installed on a subdomain of Your Licensed Sendy Domain. The subdomain can be anything you like, but sendy, mail or newsletter could be appropriate choices. 

Throughout this guide, the subdomain used is testdemo.

Your Sendy Installation URL

Defined simply as Your Chosen Subdomain.Your Licensed Sendy Domain

For example, if Your Chosen Subdomain is sendy and Your Licensed Sendy Domain is, Your Sendy Installation URL will be

Throughout this guide, the Sendy installation URL used is

Your Virtualmin Installation URL

Defined simply as Your Chosen Subdomain.Your Licensed Sendy Domain:10000

Throughout this guide, the Virtualmin installation URL used is

Your AWS Region

You need to choose Your AWS Region before starting. 

AWS operates three geographical regions for its Simple Email Service (SES) — US West (Oregon), US East (North Virginia) and EU (Ireland). 

Your choice of region should be based on the physical proximity of the SES region to your website’s audience. 

So, if your website’s visitors (and therefore mailing-list contacts) are located mostly in Europe, then choose EU (Ireland) as Your AWS Region

Your AWS server should be created in Your AWS Region, too. Selecting the appropriate AWS region is important for Sendy processing and efficiency reasons.

For the purposes of this guide, the AWS region used is EU (Ireland).

Your Webhost and Your Webhost’s Control Panel

Your Webhost is the company that hosts Your Licensed Sendy Domain — it is likely to be one of 1and1, Tsohost, 123-reg, Bluehost, namecheap, Hostinger, GoDaddy, and so on.

You require Your Webhost’s Control Panel login details so you can create extra DNS records that: 

a) will point Your Sendy Installation URL to your AWS server, and; 
b) allow AWS to verify you control Your Licensed Sendy Domain so you can use Sendy to send emails through AWS SES. 

Even though you are installing Sendy on AWS and not on Your Webhost, you still require Your Webhost’s Control Panel details to get everything working correctly.

Please refer to the support documentation from Your Webhost (for example, this documentation from GoDaddy) for exact instructions on how to create a new DNS record. Your Webhost's Control Panel is likely to be different from the control-panel screenshots shown within the guide.

Your Unzipped Sendy Code Folder

The location on your computer where you unzipped and stored your copy of the Sendy software.

Red text is used within the guide to remind you to apply the actual value of the definition, and not to mistakenly type the definition name!

You will need to decide the allocated storage (EBS) requirements of your AWS server. This AWS set-up requires a minimum of 8GB and the AWS 12-month FREE tier covers up to 30GB. Please read What AWS Costs for the potential cost implications of allocated server storage (EBS) beyond the FREE tier.

Once selected, your allocated server storage (EBS) is not straightforward to change — so please think carefully before creating your server.

The server’s ‘LEMP stack’ operating system, Virtualmin interface and Sendy software will require approximately 3.25GB, so leaving a minimum of 4.75GB for your Sendy database and other files you may wish to host. 

You may want to consider whether you could use your AWS server and Virtualmin for other purposes. For example, both can combine to create and host websites powered by WordPress. My Sendy installation uses 30GB.

AWS refers to its servers as ‘instances’. This guide simply calls them servers.

The guide requires you to create four passwords: 

1) a server root  password for your AWS server (Part 3);
2) a MySQL root password for your MySQL database system (Part 8);
3) an Administration password for the Virtualmin virtual server that hosts Sendy (Part 9), and;
4) a login password for Sendy (Part 15).

For security reasons, the passwords should be different.

Have your Sendy licence key handy for when you install Sendy during Part 15.


Trouble may strike at these particular points: 

1) Being unable to connect to Virtualmin at the end of Part 7. Double-check your new DNS record and/or start Virtualmin within the SSH client if the Virtualmin/Webmin login screen does not appear. Otherwise, be patient! 

2) Experiencing Connection Lost messages and similar difficulties within Virtualmin during Part 8, Part 9 and Part 10.  My Troubleshooting Virtualmin page should help resolve the problem.

3) Being unable to reach the Install Sendy page at the end of Part 15. Usually incorrect settings within the includes/config.php file are the cause. 

If you currently enjoy the AWS 12-month FREE tier and operate no other servers, the set-up process should cost you nothing — even if things go wrong and the whole process is attempted multiple times. Part 20 describes how to delete your AWS server and start again. 

Finally, this guide may seem overwhelming at first. There are multiple parts and plenty of switching from AWS to an SSH client to Virtualmin and back to AWS and so on. 

However, you will fill a great sense of satisfaction after completing the guide and getting Sendy and Virtualmin up and running on AWS. What’s more, you will gain valuable knowledge for maintaining your set-up for the future — and not have to rely on others for help.

And with that, happy installing... and good luck! 

Maynard Paton

PS: You can always let me know how you get on.

PPS: Click here to download a handy PDF checklist of my instructions






​(Want to learn more? Click here to visit the full website index.)

Oh wow! I have successfully installed Sendy  and Virtualmin on AWS by following this amazing free guide. See for yourself at:

Click to Tweet your Success!

I Switched To Sendy... and Cut My Bill By 90%! 

Moving *away* from MailChimp is definitely a money-saver. I switched to Sendy & Amazon SES and cut my bill by 90%…

Mattias Geniar, @mattiasgeniar , Sendy customer

MailChimp 'Disruptor'. $59 One-Off Fee. Full Refund Available.