Anonymous, encrypted email.
Todo:
- Rewrite example Nginx config in https for various webservers
- Implement docker for painless installation
- Expand test coverage, break unit testing into more modular pieces
- Queueing system when encrypting messages rather than competing for available memory
- Emails from Whisper should carry a PGP signature to verify their authenticity
###Installing Whisper
Whisper is a Python 3 application. In development environments, skip all of the below and use Vagrant and run vagrant up
from the application directory instead.
To begin the installation process, install Python 3 and the Python development headers. On Ubuntu:
sudo apt-get install python3.4 python3.4-dev libffi-dev
To install all the necessary Python requirements, navigate to the root directory and use:
sudo pip install -r requirements.txt
####Requirements
#####System Dependencies
- Python 3.4+
- libffi-dev
#####Python Dependencies
- Gunicorn
- Bottle
- Bottle-sqlite
- Requests
- pyNaCL
####Example Nginx config
server {
listen 80;
server_name www.whisper.email;
rewrite ^ https://whisper.email$request_uri? permanent;
}
server {
listen 80;
server_name whisper.email;
root /var/www/whisper.email;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /static {
try_files $uri $uri/ =404;
}
}
###Setting up Whisper
Make sure the user you're running Whisper as has write permissions to the current directory, then run gunicorn app'
from your root Whisper directory to start.
Whisper config will be automatically generated in your root folder if it isn't already present. The config follows this structure:
{
"api_key": "",
"domain": "yourdomain.com",
"salt": "",
"private_key": "" # base64 encoded NaCl key
}
Note that if a salt is not provided then it will automatically be generated. To acquire an API key (10,000 free emails a month) head here: http://mailgun.com