Guisch / keemailserver

Never expose your personal email again

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Keemail Server

Never expose your personal email again

About / Synopsis

Keemail Server is the webserver part of Keemail. It's using python Flask + SQLAlchemy.

  • Keemail allows you to easily generate aliases to your personal email address
  • Provide a REST API to let you integrate it into your favorite tools
  • Aliases are randomly generated but can be customized

Installation

Keemail Server needs Keemail Postfix to be installed in order to work. See the main Keemail repo for a full detailed guides.

Docker

You can automate deployment with Docker. Please visit the main Keemail repo for a full detailed guide.

Basic Install

Env

You need to set environment variables

Name Required / Optional Default Description Value
KEEMAIL_SECRETKEY Required Flask Session secret key Any random key
KEEMAIL_DB_URI Required Database URI including table name mysql://user:pass@domain:port/table
KEEMAIL_DOMAIN Required Email alias domain example.com
KEEMAIL_ENV Optional development Server environment (used for Flask and SqlAlchemy debug) development or production
FLASK_APP Required Flask entry point run.py

Requirements

Keemail server is tested for Python3. Python 2.7 and lower are not supported. To install Python required, please use pip3

$ pip3 install -r requirements.txt

Migration

Keemail Server is using database migration through Flask. If it is the first time that you are setting up Keemail, please init the database

# Only run this command on first setup
$ flask db init

Then, create the migration file and upgrade the database. Please run the 2 following commands every time you upgrade Keemail Server

# Run those commands every time you update the server
$ flask db migrate
$ flask db upgrade

Run

It is recommended that you run Keemail inside dockers, but if you prefer you can run the server. By default, the server is listening on 0.0.0.0:80

$ python3 run.py

Alternatively, you can use Flask Run Script but you need first to setup env

$ export FLASK_APP=run.py
$ flask run

About

Never expose your personal email again

License:MIT License


Languages

Language:Python 51.9%Language:HTML 41.7%Language:CSS 5.2%Language:Dockerfile 0.9%Language:Shell 0.3%