submattic icon indicating copy to clipboard operation
submattic copied to clipboard

Crazy simple, Node.js powered, whitelist-only email groups. For humans!

trafficstars

Submattic

Crazy simple, Node.js powered, whitelist-only email groups. For humans!

Requirements

  1. Node.js & NPM installed on your dev server
  2. A Mandrill account
  3. A domain or subdomain with your MX records pointed at Mandrill

Installing

  1. Clone the repo to your dev server.
  2. Run npm install
  3. Add and edit your groups in /groups/.yaml
  4. Deploy to Heroku, Nodejitsu, or your Node hosting service of choice.
  5. Point Mandrill's Inbound Email (*) wildcard domain route to the public root URL (e.g. http://example-url.com). You can choose to specially add each mailbox route explicity to avoid having exceess email (read: SPAM) hit your server unnecessarily. Mandrill Settings
  6. Edit the config.yaml file and add your Mandrill API Key.

Usage

Create a group by adding a YAML file to the /groups folder. A file named gamenight.yaml would create the email list [email protected]. The file should contain a title (used in the subject lines) and a list of name/email keys for all the memebers. Here's an example of a group file:

title: Example
members:
  -
    name: Peter Pevensie
    email: [email protected]
  -
    name: Susan Pevensie
    email: [email protected]
  -
    name: Edmund Pevensie
    email: [email protected]
  -
    name: Lucy Pevensie
    email: [email protected]

Only emails from people within the group (this is white-listing) will be accepted and routed to the rest of the members. Full HTML/text content will be passed along.

Quick Start guides to hosting Submattic

We'll assume you have Submattic running locally already.

Running on Heroku

  1. Create a Heroku account
  2. Install the Heroku gem: gem install heroku or install the Heroku Toolbelt
  3. Login heroku login and authenticate with your account info
  4. Create the app: heroku create
  5. Deploy: git push heroku master
  6. Turn a dyno on to make sure the app is running: heroku ps:scale web=1
  7. Visit the app to make sure Submattic is running: heroku open.

Running on Nodejitsu

  1. Create a Nodejitsu account
  2. Install jitsu, the command line interface for Nodejitsu's platform: npm install jitsu -g
  3. Login jitsu login and authenticate with your account info
  4. Deploy: jitsu deploy. Nodejitsu will ask you for some additional info, like your app's name, subdomain, and start script. The start script is app.js.
  5. Visit <yourapp>.nodejitsu.com to make sure everything's running.