• Get application security done the right way! Detect, Protect, Monitor, Accelerate, and more…
  • A step-by-step guide to installing and setup Sedy on Ubuntu 18.x

    Why spend hundreds of dollars per month when you can send more than 100,000 emails in around $25 per?

    As you can see if you send ~100,000 emails using Sendy, it would cost $10.02 per month. Do you think why I said $25?

    Here you go…

    Sendy is a self-hosted email marketing software which can be installed on VPS or Cloud server. It leverages AWS SES to send emails at a much cheaper cost. You need to pay one time $59 to buy the Sendy software. And as I mentioned you need to get it installed on your server which usually cost around $10 per month.

    So, if you do the maths, it would cost less than $25 per month which includes Sendy one-time payment, Cloud VM and Amazon SES.

    And not just DigitalOcean but you can get it installed on any other cloud platform. Sendy is not a resource intensive software, so entry-level server (1 CPU/1-2GB RAM) should be fine.

    Here are some options.

    Platform Cost (monthly)
    Kamatera $9
    Linode $10
    A2 Hosting VPS $10

    Until now, you know the pricing benefits. Let’s take a look at some of its features.

    • A beautiful dashboard – a web-based application where you can manage the entire newsletter operations. You will feel like you are using a SaaS-based marketing email platform.
    • Multi-brand – manage multiple brands under a single account — a perfect for a digital agency.
    • Segmentation – segment your customer and audience in the list
    • Autoresponders – automate your marketing emails
    • Bounce handling – keep the list clean
    • Insights – know how your campaign is performing – visualize every data (clicks, bounce, unsubscribe, etc.)
    • GDPR ready
    • Enable two-factor authentication for better security

    If you are using WordPress, then Sendy got a simple widget to collect emails. Alternatively, you can use Thrive Leads to integrate with Sendy to collect emails faster.

    Note: you should be familiar with basic Linux administration to log in and install the software. Don’t worry if not; you can hire a professional on Fiverr to get it done for you.

    Let’s get it started…

    The following, I will use Ubuntu 18.04 on Google Cloud VM to install MariaDB, Apache, PHP, and Sendy. I’ll set up on a sub-domain called sendy.geekflare.com

    Creating AWS IAM Credentials

    First thing first – let’s create IAM credential on AWS which will be needed in the next step. I assume you already have AWS account if not, you can signup here.

    • Once an account is created and logged in, 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

    You can also follow the instructions as explained in the video.

    Don’t share the access and secret key with anyone. Keep it safe!

    Installing Sendy

    • Login to Ubuntu server
    • 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

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



    [email protected]:/var/www/html# mysql_secure_installation 
    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!
    [email protected]:/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: change the password to some complex one

    Its time to upload Sendy software. When you buy, you will receive an email with download link and a license key. You need to upload the downloaded software to your server.

    • Go to Apache root directory
    cd /var/www/html
    • Move the uploaded Sendy software here and unzip the file
    unzip sendy-4.0.1.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
    vi config.php

    As you can see, you need to update 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.2-fpm restart
    service mysql restart

    All the preparation work is done and its time to install Sendy. Before that, let’s ensure the server has all the required library by accessing a compatibility.php file


    You should see them all green.

    Great, let’s start the installation…

    • Access the URL with /sendy
    • Enter all the information and click Install now

    • It will take a few seconds, and you get a success confirmation.

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

    This concludes Sendy is successfully installed and ready to use. But, wait, don’t go way.. there is more.

    Increase AWS SES Quota

    If you look at the previous screenshot, you will notice about sending email limit in red color text. By default, AWS allows sending 200 emails daily which may not be sufficient for many cases. To increase the quota, go to service limit increase request and submit it.

    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

    It is not instant, so you got to wait for a few hours to get the sending limits increased. AWS will notify you.

    Verifying Domain

    For better email delivery, you should consider verifying 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.

    Once you add the TXT and CNAME records, it may take up to 72 hours to get it verified. And once 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 confirmed, you should see the status as verified.

    Now you are good to use Sendy!

    Login to Sendy and create a brand, import list (if you already have one), integrate with lead conversion and everything you want to do.


    It takes a little bit of time to setup Sendy but worth it. If you have a large subscribers list, then you could save $$$$ annually.