Coder Social home page Coder Social logo

submattic's Introduction

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.

submattic's People

Stargazers

Miguel Piedrafita avatar JC avatar AJ Penninga avatar Will Murray avatar Cem Simsek avatar Jeff Triplett avatar Guruvai O. B. avatar Drew Strojny avatar Joe Critchley avatar Adam Brodzinski avatar Sergey Storchay avatar Greg Gamel avatar Blain Smith avatar Jon Christopher avatar  avatar Ronny-André Bendiksen avatar

Watchers

Jack McDade avatar Guruvai O. B. avatar James Cloos avatar

Forkers

seanhinkley ajp

submattic's Issues

Tests

Add code coverage

Support a database

Instead of YAML files which need to be deployed by hand, optionally supporting a simple database would allow it to live autonomously.

Notifications

Group owner could choose to receive some notifications (possibly as a digest) on their group(s).

Simple GUI

If using a DB, might as well have a simple little GUI. Which inevitably would require authentication.

Logs

Log various activities

Hash Commands

Support hash commands on the first line of the body content. Some possible examples:

  • Subscribe
  • Unsubscribe
  • Request a full list
  • Logs
  • Schedule Email
  • Use template
  • List Help (show controls and some instructions)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.