whiteout-io / mail

[ABANDONED] Mail App with integrated OpenPGP encryption
https://whiteout.io
MIT License
545 stars 96 forks source link

[ABANDONED] Whiteout Mail Build Status

Whiteout Mail is an easy to use email client with integrated OpenPGP encryption written in pure JavaScript. Download the official version under whiteout.io.

Screenshot

Features

You can read about product features and our future roadmap in our FAQ.

Privacy and Security

We take the privacy of your data very seriously. Here are some of the technical details:

Architecture

client architecture

Reporting bugs and feature requests

Testing

You can download a prebuilt bundle under releases or build your own from source (requires node.js, grunt and sass):

npm install && npm test

This will download all dependencies, run the tests and build the Chrome Packaged App bundle release/whiteout-mail_DEV.zip which can be installed under chrome://extensions in developer mode.

Development

For development you can start a connect dev server:

grunt dev

Then visit http://localhost:8580/dist/#/account?dev=true for front-end code or http://localhost:8580/test/unit/ to test JavaScript changes. You can also start a watch task so you don't have rebuild everytime you make a change:

grunt watch

Releasing Chrome App

grunt release-test --release=0.0.0.x
grunt release-stable --release=0.x.0

Deploying Web App & Selfhosting

The App can be used either as a Chrome Packaged App or just by hosting it on your own trusted web server. You can build the app from source.

Build from source

Clone the git repository

git clone https://github.com/whiteout-io/mail.git

Build and generate the dist/ directory:

npm install && grunt

Running the server

To test the server, start it in development mode (without SSL):

node server.js --dev

Navigate to http://localhost:8889 (or whatever port is set using the PORT environment variable).

To start the server for production use (this automatically redirects to https)

npm start

A note on security: The app should not be used without SSL so it's best to set up a reverse proxy or Loadbalancer with your SSL certificates. If you are not sure how to do this it might be easier to use our managed web hosting or packaged apps under https://whiteout.io/#product.

You can limit incoming and outgoing connections to the socket.io proxy by setting the following environment variables:

# the web socket proxy listens to this port
# if unset, defaults to 8889
PORT=12345

# the socket.io proxy accepts connections from these origins to tunnel them to tcp,
# separate with commas
# if unset, defaults to 'localhost:' + port
INBOUND_ORIGINS='foo:1234,bar:569'

# the socket.io proxy opens tcp connections with these ports to tunnel them to socket.io
# separate with commas
# if unset, defaults to '143,465,587,993' (25 is forbidden by default)
OUTBOUND_PORTS='123,456,789'

To start the server in development mode (no forced HTTPS, iframe loads http content), run node server.js --dev

License

The MIT License (MIT)

Copyright (c) 2014 Whiteout Networks GmbH.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

Third party libraries

We work together with existing open source projects wherever possible and contribute any changes we make back upstream. Many of theses libraries are licensed under an open source license. Here are some of them: