kill-the-newsletter/README.md

2.8 KiB

Kill the Newsletter!

Convert email newsletters into Atom feeds

Convert email newsletters into Atom feeds

Source Continuous Integration

Running Locally

Install Node.js and run:

$ npm install
$ npm start

The web server will be running at http://localhost:8000 and the email server at smtp://localhost:2525.

Deployment

  1. Create a deployment SSH key pair:

    $ ssh-keygen
    

    Private key (id_rsa): Add to GitHub as a Secret called SSH_PRIVATE_KEY.

    Public key (id_rsa.pub): Add to DigitalOcean and to GitHub as a Deploy key for the repository.

  2. Create a DigitalOcean droplet:

    Image Ubuntu 18.04.3 (LTS) x64
    Plan Starter Standard $5/mo
    Additional options Monitoring
    Authentication Deployment SSH Key
    Hostname kill-the-newsletter.com
    Backups Enable

    Firewall

    Name kill-the-newsletter.com
    Inbound Rules ICMP
    SSH 22
    Custom 25 (SMTP)
    HTTP 80
    HTTPS 443

    Floating IP

  3. Configure DNS in Namecheap:

    Type Host Value
    A @ <droplet-ip>
    CNAME www kill-the-newsletter.com
    MX @ kill-the-newsletter.com
  4. Setup the server:

    $ ssh-add
    $ npx pm2 deploy package.json production setup
    
  5. Migrate the existing feeds:

    $ ssh-add
    $ ssh -A root@kill-the-newsletter.com
    root@kill-the-newsletter.com $ rsync -av <path-to-previous-feeds> /root/www.kill-the-newsletter.com/current/static/feeds/
    
  6. Push to GitHub, which will trigger the Action that deploys the code and starts the server.