2016-01-10 22:33:43 +01:00
|
|
|
Freeposte.io
|
|
|
|
============
|
|
|
|
|
2016-05-04 12:57:21 +02:00
|
|
|
Simple yet full-featured mail server as a set of Docker images.
|
2016-01-10 22:33:43 +01:00
|
|
|
The idea behing Freeposte.io is identical to motivations that led to poste.io:
|
2016-02-24 07:44:49 +01:00
|
|
|
providing a simple and maintainable mail server that is painless to manage and
|
|
|
|
does not require more resources than necessary.
|
2016-01-10 22:33:43 +01:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2016-02-24 09:08:36 +01:00
|
|
|
General architecture
|
|
|
|
====================
|
|
|
|
|
|
|
|
The mail infrastructure is based on a standard MTA-LDA pattern :
|
|
|
|
|
|
|
|
* Postfix for incoming and outgoing emails ;
|
2016-05-29 20:04:31 +02:00
|
|
|
* Rmilter as a filtering interface before delivery (with rspamd and ClamAV) ;
|
2016-02-24 09:08:36 +01:00
|
|
|
* Dovecot as a delivery agent and reading (IMAP) server ;
|
|
|
|
* Roundcube (or any Webmail) as a user-friendly Web client ;
|
2016-05-04 12:20:00 +02:00
|
|
|
* Fetchmail as a client to fetch remote accounts (POP/IMAP) ;
|
2016-02-24 09:08:36 +01:00
|
|
|
* Freeposte (Flask application) as an administration interface.
|
|
|
|
|
2016-02-24 09:47:04 +01:00
|
|
|

|
|
|
|
|
2016-04-12 21:27:35 +02:00
|
|
|
Running a mail server
|
|
|
|
=====================
|
2016-02-20 20:16:38 +01:00
|
|
|
|
2016-06-12 11:32:42 +02:00
|
|
|
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:
|
2016-02-24 07:44:49 +01:00
|
|
|
|
|
|
|
```
|
|
|
|
docker-compose up -d
|
2016-02-20 20:16:38 +01:00
|
|
|
```
|
2016-04-12 19:58:49 +02:00
|
|
|
|
2016-06-12 11:32:42 +02:00
|
|
|
For a detailed walktrough, see ``INSTALL.md``. Also, see ``MANAGE.md`` for
|
|
|
|
details about daily maintenance of your mail server.
|
2016-04-12 19:58:49 +02:00
|
|
|
|
|
|
|
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
|
|
|
|
```
|
2016-06-12 11:32:42 +02:00
|
|
|
|
|
|
|
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).
|
|
|
|
|
|
|
|
|