Do you long to install Sendy but not quite sure how to set it up?

You dont need to hire an administrator or spend hours following outdated tutorials. This guide will help you install Sendy and become your own Sendy administrator. With this, you can own your infrastructure and be in control of your system.

Perquisites:

  • AWS Account – signup here for 1 year free trial.
  • Ubuntu 18.+ (1 CPU/1-2GB RAM)
  • Domain Name
  • Subdomain name for Sendy

Let’s begin!

Creating AWS IAM Credentials

Lets create IAM credential on AWS.

  • Go onto your account go to IAM Users
  • Click Add user and enter the username and select access type as programmatic
  • Under attach existing policy directly, type sesf and snsf to select the policy
  • Copy the access key ID and secret access key

It is essential that you keep these access keys away from any eyes!

To open up your sending limits and get into production mode, follow this AWS SES guide.

Software Updates Before You Install Sendy

  • Login to Ubuntu server via SSH
  • Update and upgrade your machine
sudo apt-get update && apt-get upgrade

Install Apache HTTP

apt-get install apache2
  • Enable mod_rewrite
a2enmod rewrite
  • Install PHP-FPM and required library
apt-get install php-fpm libapache2-mod-php php-mysql php-curl php-xml

Install MariaDB

apt-get install mariadb-server mariadb-client

Run the security script to harden the SQL. Run the below command and set the password for root. Press Y for all the options.

mysql_secure_installation

Copy the bellow.

Remember to follow WordPress password best practices to prevent being hacked

Ex:

root@email:/var/www/html# mysql_secure_installation 

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] 
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] 
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] 
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] 
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!
root@email:/var/www/html#

  • Let’s create a database. Login to MySQL, it will prompt you to enter the password which you defined in the previous step.
mysql -u root -p

  • It will take you to the MariaDB prompt, where we will create a database called sendy
create database sendy;

  • Grant the permission
GRANT ALL ON sendy.* TO 'sendy'@'localhost' IDENTIFIED BY 'password';

**Note: Follow Password Best Practices

Install Sendy On Your Machine

Its now time to upload the Sendy software. Ensure that you received an email with download link and a license key when you purchased it.

You need to upload the downloaded software to your server. To help me move it, I used CyberDuck.

  • Go to Apache root directory
cd /var/www/html
  • Move the uploaded Sendy software here and unzip the file
unzip sendy-<Latest-Version>.zip
  • It will create a new folder “sendy” where you will need to update the config.php
  • Go to includes folder and update config.php
cd includes
nano config.php
sendy-config-php

From the above, you need to change five parameters (APP_PATH, dbHost, dbUser, dbPass, dbName)

So far so good? Let’s quickly restart all the necessary software.

service apache2 restart
service php7.4-fpm restart
service mysql restart

Everything has been installed and our preparation has finally finished. Its now time to install Sendy. Before that, we need to check that our server has all the required library dependencies by running a compatibility.php file

Start the Sendy Install Program

http://sub.domain.com/sendy/_compatibility.php?i=1

When you enter the link it should all turn green. If not, you will need to troubleshoot the issue here.

Install Lets Encrypt

Sendy Registration

  • Go to the install page with URL with /sendy
  • Enter the license key, AWS credentials and your email address and click Install now.
  • To get a success confirmation, it will take a few seconds.

You will also receive an email from AWS to confirm the email. You have once done, login to Sendy.

And there you go. You now have Sendy installed !!! You dont need to pay $100s to get an admin to set it up.

Increase AWS SES Quota

Due you haven’t lifted your sending limit, you only have 200 emails a day which wont be enough going forward. To increase the quota, go to service limit increase request and submit it.

To get the full step by step check out:___________________________

Note: you need to choose the same region as your Sendy is connected to. By default its N. Virginia. To verify, go to settings on Sendy dashboard >> AWS SES region

You should receive a notification in few hours to get the sending limits increased. AWS will notify you.

Verifying Your Domain

For optimal email delivery, you should consider verifying your domain on AWS SES.

  • Go to AWS SES (again, ensure you are in the same region as Sendy is connected to)
  • Click on Domains at left sidebar >> verify a new domain
  • Enter the domain or subdomain
  • Select Generate DKIM settings and click verify this domain
  • It will prompt the domain verification records which you’ll need to configure for your domain through the domain registrar.

Now you can copy and add the TXT and CNAME records, it may take up to 72 hours to get it verified. Once you have done, you should see all green under verification, DKIM and enabled for.

Next, verify an email which you will be using to send the newsletter.

  • Click on Email addresses on left sidebar >> verify a new email address

You’ll get a verification email to the email address you provided. Once it has confirmed, you should see the status as verified.

Sendy Install Complete!!!

Summary

This tutorial should have everything you need for setting up Sendy. I have followed this guide many times when setting it up for others.

Heres a recap on the steps needed to install Sendy:

  • Create AWS IAM Credentials
  • Software Updates Before Installation
  • Go And Install Apache HTTP
  • Install MariaDB
  • Download and Install Sendy
  • Start Sendy
  • Increase AWS SES Quota
  • Verifying Your Domain

I hope this tutorial has been helpful. Remember that this tutorial will help and teach you to become your own Sendy administrator. You could use this guide to set it up for others too!

I hope you have enjoyed this post. If you would like to learn more, remember to sign up to our newsletter to get more tutorials, guides and walkthroughs like this.