Lightweight Flask web app to courier email messages via Postmark to be processed by an instance of Phantom of the Capitol.
This project is still a work in progress so the README will be updated as it finalizes. In the meantime, you can get a working development environment set up by doing the following.
- Clone the project
- Create a virtul environment for Python 2.7.8
pip install -r requirements.txt
mv config/settings.py.example config/settings.py
YOU WILL NEED TO CONFIG THIS- Set values for API keys, url for your instance of Phantom of the Capitol, etc in
config/settings.py
python tasks/admin.py setup_test_environment
to create initial schema for database & create test datapython run.py
to run app locally for development.- Check out
bin/deploy.sh
andfabfile.py
for deploying to a production environment.
You will also need to do the following to fully set up the project:
- Follow instructions on https://github.com/EFForg/phantom-of-the-capitol
- Point to your instance in the
PHANTOM_API_BASE
variable inconfig/settings.py
- Create a postmark account and obtain credits.
- Forward your inbound emails to postmark.
- Add webhook to process outbound emails to the
/postmark/inbound
endpoint found inapp/urls.py
- Install redis (http://redis.io/ or
brew install redis
,sudo apt-get install redis-server
) - Run the redis server with
$ redis-server
-
To process emails, you'll need to point your postmark server inbound webhook to "<your server>/postmark/inbound". Note that this isn't secure unless you have server authentication set up. Since it's not feasible to test locally with postmark, you can simulate an inbound email using
python tasks/admin.py simulate_postmark_message <from_email> <to_oc_email>
. If you use this script to simulate postmark messages then keep in mind that ifAPP_DEBUG=True
inconfig/settings.py
then live emails will not send (unless the<from_email>
argument is in the list inADMIN_EMAILS
- also inconfig/settings.py
). -
You can reset a user's acceptance of the terms of service by running
tasks/admin.py reset_tos <email>
. This will make it so a user has to go through the signup process again. Additionally, it will also allow all previously sent messages by the user to be sent again.
Code released under the MIT license. Design released under Creative Commons.