Actively maintained alternative: https://github.com/open-forest/sendy
Docker-compose config for running Sendy.
It contains:
- PHP + MySQL + NGNiX stack,
and a few adjustments requried by Sendy:
- URL rewrite rules as NGNiX config,
- additional PHP extensions,
- MySQL sql_mode without ONLY_FULL_GROUP_BY.
-
Sendy files and license number
-
Server - create a t2.micro instance on AWS (free for 12 months since signup) or prepare other small machine (512MB of RAM is enough) with Ubuntu Server 16.04
-
Domain address - set a DNS record pointing to your server's IP address
-
SSL - prepare certificate files for your domain
-
Install Docker and grant an user Docker access for your user (steps 1 & 2):
-
Install Docker-Compose (step 1):
-
Clone my Docker-Compose configuration in the home directory:
git clone https://github.com/marcinbiegun/docker-sendy.git -
Upload your SSL ceriticate files as
~/docker-sendy/docker/sendy.keyand~/docker-sendy/docker/sendy.pem -
Open
~/docker-sendy/docker/docker-compose.ymland set MySQL passwords at the end of the file -
In
~/docker-sendy/docker/server.confchange value ofserver_nameto your domain name -
Copy Sendy files inside
~/docker-sendy/public_html -
Edit
~/docker-sendy/public_html/include/config.php:- set
APP_PATHto your site URL - set
$dbHostdomysql - set
$dbUsertosendy - set
$dbNametosendy - set
$dbPassto the password you've set indocker-compose.yml
- set
-
Run
chmod 777 ~/docker-sendy/public_html/uploads -
Inside
~/docker-sendy/dockerdirectory, rundocker-compose buildto build the containers, then start the app withdocker-compose start -
Setup cron. Find the PHP container's name by running
docker-compose ps, it will be named likedocker_php_1. Runcrontab -eand add this line:
* * * * * docker exec docker_php_1 php /code/public_html/scheduled.php
At this point, Sendy should be up and running under your domain address. Open it, finish the setup inside Sendy installer (connect Amazon SAS account, etc.).
Done! You can send your first newsletter.
Based on mortezaPRK/docker-php.