Sendy Installation and Setup on Linux (Ubuntu and CentOS)

Sendy installation on linux

Sendy Definition 

Sendy is a self hosted email newsletter application that lets you send emails using Amazon SES and other SMTP providers and it can be installed over LAMP (Linux, Apache, MySQL and PHP) stack just like WordPress.

Sendy Pricing and Sendy Download

You can purchase Sendy from their website https://sendy.co. Once purchased you will receive the Sendy’s download link and the license for installation in email.

Check out Sendy, a self hosted newsletter app that lets you send emails 100x cheaper via Amazon SES.


Sendy Hosting

You can host Sendy with any hosting company which provides hosting for PHP based applications like WordPress or you can install/setup on your own VPS (virtual private server). This article will demonstrate installation of Sendy on a new Ubuntu or CentOS VPS from scratch.

We have used Digital Ocean to create the VPS for this article.

DigitalOcean Referral Badge

Sendy System Configurations


We are using Sendy 5.2.3 on Ubuntu 18.04 and CentOS 7.9 for this installation article. We will be installing the server on the URL: sendy.postbox.services. You can install Sendy on any of your domain/subdomain.

Sendy Installation Steps:

FTP the Sendy package

For Sendy installation you need to buy Sendy license from their official website. Once you have bought the Sendy license then download the Sendy package and put it into your VPS machine using FileZilla / your favorite FTP software / SCP.


Create an A record in the DNS for the Sendy URL

Before starting the configuration you need to do A records for your domain for IP connectivity.

Configure the hostname

# hostnamectl set-hostname sendy.postbox.services

Install Apache2 as web server

Ubuntu:

#apt-get install apache2

Now enable the mod_rewrite

Ubuntu :
#  a2enmod rewrite

Centos7:

#sudo yum install httpd

#sudo firewall-cmd –permanent –add-service=http

#sudo firewall-cmd –permanent –add-service=https

#sudo firewall-cmd –reload

Install PHP and PHP-FPM

Ubuntu:

apt-get install php php-fpm libapache2-mod-php php-mysql php-curl php-xml

Centos:

sudo yum install epel-release yum-utils

sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

sudo yum-config-manager –enable remi-php73

sudo yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysqlnd

Install Database (mysql or mariadb)

Ubuntu:

sudo apt install mysql-server mysql-client



CentOS:

sudo yum install mariadb-server mariadb -y

Create the database

Let’s create a database, login to MySQL, it will prompt you to enter the root password which you gave while installing mysql/mariadb

# mysql -p

Use the following commands to create a database for Sendy:

# create database sendy;
# create user ‘sendyuser’@’localhost’ IDENTIFIED BY ‘wsxEd#&12HsUwc4’;
# grant all privileges on sendy . * TO ‘sendyuser’@’localhost’;

Please change database name, username and password during your configurations.

We have created database successfully which can be checked with following command :

# show databases;

We have configured database with the following details :

Hostname : Localhost
Database  : sendy
Username : sendyuser
Password :  wsxEd#&12HsUwc4

Install unzip

Ubuntu:

apt-get install unzip

CentOS:

yum install unzip

Unzip Sendy package

# unzip sendy-5.2.3.zip
# ls -ltr

Move Sendy folder to web root

Now we have a folder called sendy which has all the required configuration file and folder. Move sendy folder in web document root location. 

# mv sendy /var/www

Configure Apache

We have moved the sendy folder in our document root, now it’s time to setup the Apache config file for sendy.

Go to the Apache configuration path

Ubuntu:

cd /etc/apache2/sites-available/

CentOS:

cd /etc/httpd/conf.d

Create a new file with the .conf extension and put the following configuration then save and exit.

# vim sendy.postbox.services.conf

<VirtualHost 112.x.x.x:80>
     ServerAdmin [email protected]
     ServerName  sendy.postbox.services
     DocumentRoot /var/www/sendy
     ErrorLog /var/www/sendy/logs/error.log
     CustomLog /var/www/sendy/logs/access.log combined
     <Directory /var/www/sendy>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                 allow from all
                 Require all granted
     </Directory>
</VirtualHost>

Save the configuration and exit from your editor.

Note : Please change domain and IP addresses according to your configuration.

Configure Sendy configuration file

Go to your document sendy root directory inside the includes directory and update the config.php file with database details.

# cd /var/www/sendy/includes/
# vim config.php

Edit the config. php file in your favorite editor here I am editing it via VIM editor.

Here we have to change following configurations :

APP_PATH :
dbHost =
dbUser =
dbPass =
dbName =

Save and exit from the editor.

Ensure at this point all required services Apache, PHP-FPM and Mysql or MariaDB database are in running status.

Sendy server compatibility checklist

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

https://your-domain.com/_compatibility.php?i=1

In our case we will access:

http://sendy.postbox.services/_compatibility.php?i=1

Great, our configuration is working fine.

Sendy Web installation steps

Got your web browser and put the URL:


http://yourdomain/_install.php

http://sendy.postbox.services/_install.php

Fill the required information and click the install now button.

Note down the username and password.

After clicking the Install now button the page will be redirected to the login dashboard. Here we have to put the Email and Password which we have created during the configuration.

http://sendy.postbox.services/login

Click on Sign In button : 

Now Sendy is successfully installed and ready to use.

Add Brand To Sendy

Add brand for campaigns, brand creation is a process where we can create multiple users for sending newsletters. 

Click on Add your first brand button

Fill the required fields and save the password carefully from the left panel, and then click on the save button.

Brand user is created and now we can login using brand username and password.

You can also install letsencrypt free SSL certificate to secure your Sendy installation and improve deliverability.



Author:
I am Chandan Pawar working as Team Lead (Digital marketing & SysAdmin) with Postbox Consultancy Services. I enjoy building and maintaining Linux,Unix and email servers . I have done certifications RHCSA (RedHat) and MCP (Windows) and other content and digital marketing certifications from Hubspot academy .