Express & Angular app for sending messages to Senate and House members
(c) 2015 Electronic Frontier Foundation
Democracy.io is an app for contacting Senate & House members. It provides a user friendly wrapper around the individual member contact forms.
It uses APIs from:
Ensure that Redis is running locally:
sudo apt-get install redis-server
or install manually via http://redis.io/topics/quickstart - making sure to read the "Securing Redis" section, especially if you install Redis manually.
npm install
npm run build
You can generate required creds by running
node bin/gen-creds.js
or:
After you've run npm install
generate a salt for encrypting IP addresses and store it in your local.json file, under: SERVER > CREDENTIALS > IP > SALT
var bcrypt = require('bcrypt');
var salt = bcrypt.genSaltSync(10);
console.log(salt);
Set a session secret and store it in your local.json file, under: SERVER > CREDENTIALS > SESSION > SECRET
App config is controlled via the node-config module.
To set credentials, create a local-dev.json file under the config dir and override the SERVER.CREDENTIALS setting.
Alternately, you can use:
npm run test
Spins up a local server to serve the app, including proxying browsersync on top of the express server.
gulp serve
To deploy the server, simply run:
pm2 deploy ecosystem.json5 production
For more instructions on setting up a production server, check /deployment/README.md.
See the www/README.md for details