/sendy-kube

Primary LanguageShellMIT LicenseMIT

Sendy Kube Logo

Sendy Kube

Deploy Sendy on Kubernetes

Issues Twitter

Report Bug - Request Feature

Index

Table of Contents
  1. About The Project
  2. Getting Started
  3. Documentation
  4. Contributing
  5. License
  6. Contact
  7. Support the Project
  8. Acknowledgements

About The Project

Sendy Kube Project Image

Sendy Kube

Deploy Sendy on Kubernetes

Sendy is a self hosted email newsletter application that lets you send trackable emails via Amazon Simple Email Service (SES). This makes it possible for you to send authenticated bulk emails at an insanely low price without sacrificing deliverability.

So what can be better than that? Sendy on Kubernetes!


Built With

Useful extras:

Getting Started

This repo was built together with this guide (follow this as it is more thorough):

Deploying Sendy on Kubernetes

Prerequisites

Get your cluster, if you don't have one you can deploy one on Digital Ocean:

DigitalOcean Referral Badge

Be sure you also get your Sendy license, you can can use my referral code and get some % off here: Sendy

Ensure staging.yourdomainname.com and yourdomainname.com are both individually set to point at your clusters loadbalancer (I am using Traefik, you might be using nginx etc).

I am using Gitlab for my build script (.gitlab-ci.yml). When that file is deployed it will start the deploy process. If you are not using Gitlab or want to deploy manually, you can just copy the commands in the file and run them from the terminal in order of the stages using kubectl.

Installation

Here you can provide the steps required to install your project on the users machine.

  1. Clone the repo
    git clone https://github.com/jotcodeofficial/sendy-kube.git
  2. Edit all the files for your own domains
  3. Deploy files to your own repo (re-enable the .gitinore file)
  4. Edit .gitlab-ci.yml then deploy
    git add *
    git add .gitlab-ci.yml
    git commit -m "deploy time"
    git push -u origin master

Documentation

When your Sendy application is live you can configure the alias manually for your client domains by doing the following: (Ensure your clientdomain A records point to your cluster in your domain server)

  kubectl apply -f production/alias/newsletter-clientdomain-ingress-route.yml
  kubectl apply -f production/alias/newsletter-clientdomain-secure-ingress-route.yml
  kubectl apply -f production/alias/newsletter-clientdomain-issuer.yml
  kubectl apply -f production/alias/newsletter-clientdomain-solver.yml

You can do the same for staging.

Contributing

Great things are a sum of their parts. By contributing your time and effort you can help make this project even better. Collaborative efforts ftw.

License

Released under the MIT License.

Contact

@jotc0de

contact@jotcode.com

Support the Project 💖

If you are not a coder you can still help support the project by sharing it far and wide. Thanks! ❤️

Acknowledgements

I would like to acknowledge the following projects for inspiration:

https://github.com/bubbajames-docker/sendy

https://chris-vermeulen.com/using-gitlab-registry-with-kubernetes/