in

How to Install Sendy on Ubuntu – A Comprehensive 2020 Guide

Hey there!

Looking to set up a powerful yet affordable email marketing system? If so, Sendy is a fantastic option that can save you tons compared to expensive services like MailChimp.

In this step-by-step guide, I‘ll walk you through everything involved in installing the self-hosted Sendy app on Ubuntu 18.04. I‘ve set up Sendy several times myself, so I‘ll provide plenty of insight to help ensure it goes smoothly for you. Let‘s get started!

Overview – Why Sendy Rules for Email Marketing

Before we dive in, let me briefly explain why Sendy is so great:

Cost-effective

This table compares the monthly cost of Sendy vs MailChimp for sending 100,000 emails:

Platform Cost per Month
Sendy $25
MailChimp $500

As you can see, Sendy is dramatically cheaper while delivering the same email volume. The savings add up quickly when sending millions of emails.

Powerful features

Despite the low cost, Sendy actually has a very modern and polished interface. It includes automation, templates, segments, analytics, APIs, and other pro email marketing features.

Self-hosted and scalable

Since Sendy is installed on your own server, you have full data ownership and control. And Sendy can easily scale to send tens of millions of emails per month by integrating with Amazon SES.

Developer friendly

The ability to customize and extend apps is important for developers. Sendy offers webhooks, APIs, and open source code to meet developers‘ needs.

So in summary – Sendy brings together an unbeatable value with powerful functionality. It‘s no wonder Sendy has become so popular among savvy marketers.

Now let‘s get your instance up and running!

Step 1 – Provision Ubuntu Server & Install LAMP Stack

Sendy requires a basic LAMP stack (Linux, Apache, MySQL, PHP) to run. While you could install this manually, I suggest using the Laravel Forge service to instantly provision and configure a server optimized for Sendy.

Laravel Forge will automatically:

  • Create an Ubuntu 18.04 server on your desired hosting provider (AWS, DigitalOcean, Linode, etc).
  • Install and configure Apache, MySQL, PHP, firewall, and other components.
  • Secure the server with SSH keys and remove vulnerable software.
  • Add cron jobs, caching, logging, and performance tweaks.

It takes just minutes to have your LAMP server created compared to hours of effort manually. And Forge keeps everything optimized and updated going forward.

Pricing starts at $10/month per server. Well worth it for the time and headache saved!

Check out Laravel Forge to provision your server

Once your Ubuntu 18.04 server is created, SSH in to begin Sendy installation.

Step 2 – Install Required PHP Extensions

The default LAMP stack includes the core components, but we need to install a few extra PHP extensions for all of Sendy‘s functionality:

sudo apt install php-curl php-gd php-mbstring php-xml php-zip
  • PHP cURL allows HTTP requests to external services
  • GD handles image manipulation
  • XML parses XML data
  • Zip compresses attachments
  • mbstring provides multibyte string support

We also need to update PHP‘s file upload limits. Edit php.ini:

upload_max_filesize = 64M
post_max_size = 70M

This allows sending email attachments up to 64MB in size.

Finally, restart Apache to load the new PHP config:

sudo systemctl restart apache2

With those extras installed, we‘re ready for the main event!

Step 3 – Download and Install Sendy

First, purchase Sendy to get your license key and download access.

Once purchased, you can download the latest zip file to your home directory:

cd ~
wget https://sendy.co/download/sendy.zip

Extract the Sendy application:

unzip sendy.zip 

Move the sendy directory to Apache‘s web root:

sudo mv sendy /var/www/html

Adjust permissions:

sudo chown -R www-data:www-data /var/www/html/sendy

This makes the www-data user (Apache) the owner so it can read/write files.

Almost there!

Step 4 – Configure Sendy‘s Database Connection

For Sendy to work, we need to connect it to the MySQL server previously installed.

Create a new database:

mysql -u root -p
CREATE DATABASE sendy;

And a dedicated MySQL user:

CREATE USER ‘sendy‘@‘localhost‘ IDENTIFIED BY ‘passwordhere‘;
GRANT ALL ON sendy.* TO ‘sendy‘@‘localhost‘;

Use a strong password in place of passwordhere. This isolates Sendy into its own database.

Now edit Sendy‘s config.php file to enter the database credentials:

nano /var/www/html/sendy/includes/config.php

Update the values for your MySQL setup:

define(‘DB_HOST‘, ‘localhost‘);
define(‘DB_USER‘, ‘sendy‘);
define(‘DB_PASS‘, ‘passwordhere‘);
define(‘DB_NAME‘, ‘sendy‘);

Save the file after entering the correct password.

Step 5 – Complete Web-Based Installation

Navigate to your server IP or domain followed by /sendy/install to launch the web installer:

http://server_ip/sendy/install

Complete these steps in the installer:

  • Enter your Sendy license key
  • Create an admin user and password
  • Configure your Amazon SES credentials
  • Click "Install"

After a few minutes, your Sendy instance will be installed and ready for use!

Step 6 – Verify Your Domain in AWS SES

Amazon SES provides the email sending capability for Sendy. So you need an SES account with your sending domain verified.

Log into your AWS console and navigate to SES. Click "Verify a New Domain" and enter your domain name.

Follow the steps to create DNS TXT and CNAME records for domain verification. It may take up to 72 hours to fully verify after configuring the records in your domain DNS.

You can also request a sending quota increase beyond the initial 200 msgs/day. And validate the email address you want to send from.

With those SES items set up, you are good to start sending!

Step 7 – Create Your First Campaign

Log into the Sendy dashboard and check out the various options:

  • Email tab – Manage subscriber lists and create segments. Import contacts via CSV.
  • Campaigns – Create and send your first campaigns here. Design beautiful emails with the editor.
  • Autoresponders – Automatically send a series of emails when users sign up. Great for onboarding.
  • Templates – Save sections of emails as reusable templates to simplify design.
  • Configuration – Further customize Sendy‘s settings and defaults here.

Refer to Sendy‘s documentation for help using the many features.

Congrats, you now have a fully functioning email marketing system! Happy sending 🙂

Recap & Next Steps

In this guide, we covered:

  • Provisioning an optimized Ubuntu server using Laravel Forge
  • Installing LAMP stack (Linux, Apache, MySQL, PHP)
  • Configuring required PHP extensions
  • Downloading and installing Sendy
  • Creating a database and user account
  • Connecting Sendy to the database
  • Completing web-based setup
  • Verifying your domain in AWS SES
  • Importing contacts and sending your first emails

The initial setup takes some effort, but the cost savings and power of Sendy are well worth it.

Here are some recommended next steps:

  • Integrate Sendy with your website, forms, etc to grow your mailing list
  • Create segments to target specific groups
  • Automate multi-email sequences with autoresponders
  • A/B test email content to improve conversions
  • Review analytics and optimize based on insights

Let me know if any questions come up! I‘m always happy to help fellow Sendy users. Go send some awesome emails!

AlexisKestler

Written by Alexis Kestler

A female web designer and programmer - Now is a 36-year IT professional with over 15 years of experience living in NorCal. I enjoy keeping my feet wet in the world of technology through reading, working, and researching topics that pique my interest.