1
0
mirror of https://github.com/Mailu/Mailu.git synced 2024-12-14 10:53:30 +02:00
Insular email distribution - mail server as Docker images
Go to file
2016-06-19 15:38:48 +02:00
admin Remove non-minimized static assets 2016-06-19 15:38:48 +02:00
clamav Replace amavis with rmilter plus clamav and rspamd 2016-05-29 15:54:02 +02:00
doc Update the documentation 2016-05-29 20:04:31 +02:00
dovecot Mark spam messages as seen 2016-06-05 19:28:08 +02:00
fetchmail Remove a debugging print, fixes #10 2016-05-30 22:08:51 +02:00
nginx Use docker links for nginx to resolve properly 2016-04-24 16:27:35 +02:00
postfix Enable milter in postfix and run the containers 2016-05-29 15:54:34 +02:00
rmilter Replace amavis with rmilter plus clamav and rspamd 2016-05-29 15:54:02 +02:00
roundcube Use the environment secret key instead of default one 2016-05-29 15:56:44 +02:00
rspamd Replace amavis with rmilter plus clamav and rspamd 2016-05-29 15:54:02 +02:00
.gitignore Add virtualenv folders to .gitignore 2016-04-24 15:52:57 +02:00
docker-compose.yml Move the default data dir to /freeposte 2016-06-12 11:32:24 +02:00
freeposte.env Define the fetchmail delay in the global configuration 2016-05-29 15:57:21 +02:00
INSTALL.md Update INSTALL.md 2016-06-17 14:35:26 +02:00
LICENSE Add a license file 2016-04-12 20:09:40 +02:00
MANAGE.md Add a proper INSTALL documentation 2016-06-12 11:32:42 +02:00
README.md Add a proper INSTALL documentation 2016-06-12 11:32:42 +02:00

Freeposte.io

Simple yet full-featured mail server as a set of Docker images. The idea behing Freeposte.io is identical to motivations that led to poste.io: providing a simple and maintainable mail server that is painless to manage and does not require more resources than necessary.

People from poste.io did an amazing job at accomplishing this ; any company looking for a serious yet simple mail server with professional support should turn to them.

This project is meant for free software supporters and hackers to reach the same level of functionality and still be able to host a complete mail server at little cost while running only FOSS, applying the KISS principle and being able to fine-tune some details if needed.

General architecture

The mail infrastructure is based on a standard MTA-LDA pattern :

  • Postfix for incoming and outgoing emails ;
  • Rmilter as a filtering interface before delivery (with rspamd and ClamAV) ;
  • Dovecot as a delivery agent and reading (IMAP) server ;
  • Roundcube (or any Webmail) as a user-friendly Web client ;
  • Fetchmail as a client to fetch remote accounts (POP/IMAP) ;
  • Freeposte (Flask application) as an administration interface.

Architecture

Running a mail server

Freeposte runs on top of Docker for easy packaging and upgrades. All you need is a proper system with Docker and Compose installed, then simply download the docker-compose.yml and sample freeposte.env, tune them to your needs and fire up the mail server:

docker-compose up -d

For a detailed walktrough, see INSTALL.md. Also, see MANAGE.md for details about daily maintenance of your mail server.

Development environment

The administration Web interface requires a proper dev environment that can easily be setup using virtualenv (make sure you are using Python 3) :

cd admin
virtualenv .
source bin/activate
pip install -r requirements.txt

You can then export the path to the development database:

export SQLALCHEMY_DATABASE_URI=sqlite:///path/to/dev.db

And finally run the server with debug enabled:

python run.py

Philosophy

The mailserver is designed as a whole, some images are therefore not best suited for reuse outside this project. All images should however follow Docker best practices and be as generic as possible :

  • even if not suited for reuse, they should be simple enough to fit as base images for other projects,
  • interesting settings should be available as environment variables
  • base images should be well-trusted (officiel Alpine or Debian for instance).