Coder Social home page Coder Social logo

earaujoassis / postal Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 641 KB

๐Ÿ“ฎ A security- and privacy-first, mobile-first, and offline-first mail service application

License: MIT License

Java 65.69% HTML 2.79% Scala 1.06% TypeScript 8.13% Vue 15.06% JavaScript 1.15% Dockerfile 0.31% Less 5.80%
email-application

postal's Introduction

Postal

A security- and privacy-first, mobile-first, and offline-first mail service application

The Postal application is based on the AWS SES and S3 technologies/services in order to create an email application. AWS SES stores encrypted MIME messages in a S3 bucket (messages are checked by default to address spams and viruses); the Postal application obtains those messages and handles it inside the application. Email messages are also sent through the AWS SES infrastructure. The application also supports encrypting and decrypting messages.

The application is using Play + Java on the back-end and Vuejs + Vuex + TypeScript + LESS on the front-end. It also uses a Vault scheme to store application configuration settings.

Setup & Running

Please make sure to install Java 8+, Gradle, SBT, Node.js (Postal is developed over version 14.16.0), and Yarn. Also, you must create a conf/secrets.conf file according to the template configuration in conf/secrets.sample.conf to connect to a Vault k/v secret. The secret has the same format as the conf/config.local.sample.json file. You may create a conf/config.local.json if you don't want to use the Vault solution, following the structure defined by the template file (conf/config.local.sample.json). Once those requirements are complete, you may run the following commands to start the development server:

$ yarn install && yarn build
$ sbt run

Deployment using Docker

First, you must create a conf/secrets.conf file according to the template configuration in conf/secrets.sample.conf to connect to a Hashicorp's Vault k/v secret. The secret has the same format as the conf/config.local.sample.json file. You may create a conf/config.local.json if you don't want to use the Vault solution, following the structure defined by the template file (conf/config.local.sample.json). Once those requirements are complete, you may run the following command to build and start the application through Docker containers:

$ binstubs/deploy.sh

It will create the PostgreSQL container and the Postal container (through docker-compose). The application should be available at http://{docker-hostname-or-ip}:8585.

Build intermediary image

$ docker build --file Dockerfile.openjdk-sbt -t earaujoassis/openjdk-sbt .
$ docker tag earaujoassis/openjdk-sbt ${PRIVATE_REGISTRY_URL}/openjdk-sbt:latest
$ docker push ${PRIVATE_REGISTRY_URL}/openjdk-sbt:latest

Issues

Please take a look at /issues

License

MIT License ยฉ Ewerton Assis

postal's People

Contributors

earaujoassis avatar

Stargazers

 avatar

Watchers

 avatar

postal's Issues

Delete email message permanently

Acceptance criteria

  • once a message is in trash, provide a way to delete it permanently; and
  • message must be delete permanently from service provider or remote storage.

Create a settings interface

As a user, I'd like to provide information/settings to retrieve email messages from an external provider.

Acceptance criteria:

  • settings page
  • user can provide information to access external providers
  • email messages are obtained from external providers according to those settings/information

Setup the mail server and document it

Create pagination scheme

Acceptance criteria

  • once in a folder, select pages to display (10 items per page); and
  • once the folder is opened again, get back to page 1.

Create initial setup

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.