Kill the Newsletter!

Convert email newsletters into Atom feeds

Convert email newsletters into Atom feeds

Source .github/workflows/main.yml

# Running Locally Install [Node.js](https://nodejs.org/) and run: ```console $ 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: ```console $ 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` | `@` | `` | | `CNAME` | `www` | `kill-the-newsletter.com` | | `MX` | `@` | `kill-the-newsletter.com` | 4. Setup the server: ```console $ ssh-add $ npx pm2 deploy package.json production setup ``` 5. Migrate the existing feeds: ```console $ ssh-add $ ssh -A root@kill-the-newsletter.com root@kill-the-newsletter.com $ rsync -av /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.