Skip to content

Latest commit

 

History

History
45 lines (24 loc) · 1.53 KB

DEPLOY.textile

File metadata and controls

45 lines (24 loc) · 1.53 KB

Production Deployment Details

These are just some things I learned while trying to get a ListList box up on heroku from scratch. One important thing to know before getting started is that our ListList heroku account costs ~$70 per month.

Heroku

CyrusLists runs on Heroku in production. It also depends on several Heroku addons. Our Heroku configuraton uses a web dyno and an additional worker dyno which is responsible for retrieving messages from the archive.

Environment Variables

The following environment variables need to be set with `heroku config:set VAR=VALUE`. See https://devcenter.heroku.com/articles/config-vars for more info.

  • SMTP_SERVER
  • SMTP_PORT
  • SMTP_USERNAME
  • SMTP_PASSWORD
  • LISTLIST_ARCHIVE_EMAIL
  • LISTLIST_ARCHIVE_PASSWORD

CloudMailIn

This service posts each email it recieves to the app’s /incoming route. However, without a paid account they will only do this for emails sent to an email address they provide. We have a paid account so that messages sent to *@cyruslists.com are serialized and posted to cyruslists.com/incoming

Memcachier

Archived messages are cached by Memcachier.

Redis To Go

Resque is used to create background tasks for retrieving archived emails. Resque relies on redis so the Redis To Go plugin must be enabled in heroku for archives to work.

Heroku Scheduler

Used to run periodic tasks:

`rake update_archives` (daily)

`rake incremental_update` (every 10m)

SendGrid

Cloud email service. Necessary since we can’t install our own mail server on heroku.