|
|
@ -46,10 +46,11 @@ Docker supports *AUFS* over *ext4* and *btrfs* as stable storage drivers.
|
|
|
|
Other filesystems are supported such as *OverlayFS*. If you know what you are
|
|
|
|
Other filesystems are supported such as *OverlayFS*. If you know what you are
|
|
|
|
doing, you should go for it.
|
|
|
|
doing, you should go for it.
|
|
|
|
|
|
|
|
|
|
|
|
Freeposte uses Docker port forwarding from the host to make services available
|
|
|
|
Freeposte.io uses Docker port forwarding from the host to make services
|
|
|
|
to external users. First, your host should have a public IP address configured
|
|
|
|
available to external users. First, your host should have a public IP address
|
|
|
|
(see ``/etc/network/interfaces``) or your router should forward connections
|
|
|
|
configured (see ``/etc/network/interfaces``) or your router should
|
|
|
|
to its internal IP address. Due to spam problems and reputation services, it
|
|
|
|
forward connections to its internal IP address. Due to spam problems and
|
|
|
|
|
|
|
|
reputation services, it
|
|
|
|
is highly recommended that you use a dedicated IP address for your mail server
|
|
|
|
is highly recommended that you use a dedicated IP address for your mail server
|
|
|
|
and that you have a dedicated hostname with forward and reverse DNS entries
|
|
|
|
and that you have a dedicated hostname with forward and reverse DNS entries
|
|
|
|
for this IP address.
|
|
|
|
for this IP address.
|
|
|
@ -73,18 +74,18 @@ by Docker or setup your own rulesets.
|
|
|
|
Setting up Docker
|
|
|
|
Setting up Docker
|
|
|
|
=================
|
|
|
|
=================
|
|
|
|
|
|
|
|
|
|
|
|
Freeposte relies on some of the latest Docker features. Therefore, you should
|
|
|
|
Freeposte.io relies on some of the latest Docker features. Therefore, you should
|
|
|
|
install Docker from the official repositories instead of your distribution
|
|
|
|
install Docker from the official repositories instead of your distribution
|
|
|
|
ones.
|
|
|
|
ones.
|
|
|
|
|
|
|
|
|
|
|
|
The Docker website is full of [detailed instructions](https://docs.docker.com/engine/installation/)
|
|
|
|
The Docker website is full of [detailed instructions](https://docs.docker.com/engine/installation/)
|
|
|
|
about setting up a proper Docker install. Default configuration should be
|
|
|
|
about setting up a proper Docker install. Default configuration should be
|
|
|
|
suited for Freeposte.
|
|
|
|
suited for Freeposte.io.
|
|
|
|
|
|
|
|
|
|
|
|
Additionally, you must install ``docker-compose`` by following the instructions
|
|
|
|
Additionally, you must install ``docker-compose`` by following the instructions
|
|
|
|
from the [Docker website](https://docs.docker.com/compose/). Compose is a
|
|
|
|
from the [Docker website](https://docs.docker.com/compose/). Compose is a
|
|
|
|
management tool for Docker, especially suited for multipl containers systems
|
|
|
|
management tool for Docker, especially suited for multiple containers systems
|
|
|
|
like Freeposte.
|
|
|
|
like Freeposte.io.
|
|
|
|
|
|
|
|
|
|
|
|
Once everything is setup, you should be able to run the following commands
|
|
|
|
Once everything is setup, you should be able to run the following commands
|
|
|
|
(exact version numbers do not matter):
|
|
|
|
(exact version numbers do not matter):
|
|
|
@ -117,7 +118,7 @@ OpenSSL version: OpenSSL 1.0.2h 3 May 2016
|
|
|
|
Preparing the mail server environment
|
|
|
|
Preparing the mail server environment
|
|
|
|
=====================================
|
|
|
|
=====================================
|
|
|
|
|
|
|
|
|
|
|
|
Freeposte will store all of its persistent data in ``/freeposte`` by default,
|
|
|
|
Freeposte.io will store all of its persistent data in ``/freeposte`` by default,
|
|
|
|
simply create the directory and move there:
|
|
|
|
simply create the directory and move there:
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
```
|
|
|
@ -126,7 +127,7 @@ cd /freeposte
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Docker Compose configuration is stored in a file named ``docker-compose.yml``.
|
|
|
|
Docker Compose configuration is stored in a file named ``docker-compose.yml``.
|
|
|
|
Additionally, Freeposte relies on an environment file for various settings.
|
|
|
|
Additionally, Freeposte.io relies on an environment file for various settings.
|
|
|
|
|
|
|
|
|
|
|
|
Download the templates files from the git repository:
|
|
|
|
Download the templates files from the git repository:
|
|
|
|
|
|
|
|
|
|
|
@ -136,12 +137,27 @@ wget https://raw.githubusercontent.com/kaiyou/freeposte.io/master/freeposte.env
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
These templates are used for development environment. So, if you do not plan
|
|
|
|
These templates are used for development environment. So, if you do not plan
|
|
|
|
on biulding Freeposte from source, simply remove the ``build:`` references:
|
|
|
|
on biulding Freeposte.io from source, simply remove the ``build:`` references:
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
```
|
|
|
|
sed -i '/build:/d' docker-compose.yml
|
|
|
|
sed -i '/build:/d' docker-compose.yml
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The default configuration will pull the latest image built from the Docker
|
|
|
|
|
|
|
|
Hub, which is based on the latest commit on Github. This behaviour is ok for
|
|
|
|
|
|
|
|
evaluating Freeposte.io, but you should at least specify a branch. You will
|
|
|
|
|
|
|
|
still get bugfixes and security updates, but breaking changed will not be
|
|
|
|
|
|
|
|
pulled unless you explicitely change the branch number. To specify you want
|
|
|
|
|
|
|
|
to pull the ``1.0`` branch, simply add the version number to the ``image``
|
|
|
|
|
|
|
|
field:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
VERSION=1.0
|
|
|
|
|
|
|
|
sed -i "/image:/s/\(:[0-9.]*\)\?$/:$VERSION/" docker-compose.yml
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
You should always have all containers using the same branch.
|
|
|
|
|
|
|
|
|
|
|
|
Finally, edit the ``freeposte.env`` file and update the following settings:
|
|
|
|
Finally, edit the ``freeposte.env`` file and update the following settings:
|
|
|
|
|
|
|
|
|
|
|
|
- set ``DEBUG`` to ``False`` unless your are debugging,
|
|
|
|
- set ``DEBUG`` to ``False`` unless your are debugging,
|
|
|
@ -153,7 +169,7 @@ Finally, edit the ``freeposte.env`` file and update the following settings:
|
|
|
|
Setting up certificates
|
|
|
|
Setting up certificates
|
|
|
|
=======================
|
|
|
|
=======================
|
|
|
|
|
|
|
|
|
|
|
|
Freeposte relies heavily on TLS and must have a key pair and a certificate
|
|
|
|
Freeposte.io relies heavily on TLS and must have a key pair and a certificate
|
|
|
|
available, at least for the hostname configured in ``freeposte.env``.
|
|
|
|
available, at least for the hostname configured in ``freeposte.env``.
|
|
|
|
|
|
|
|
|
|
|
|
Create the certificate directory:
|
|
|
|
Create the certificate directory:
|
|
|
@ -170,7 +186,7 @@ Then create two files in this directory:
|
|
|
|
Bootstrapping the database
|
|
|
|
Bootstrapping the database
|
|
|
|
==========================
|
|
|
|
==========================
|
|
|
|
|
|
|
|
|
|
|
|
Freeposte does not yet have a database initialization or migration system.
|
|
|
|
Freeposte.io does not yet have a database initialization or migration system.
|
|
|
|
This will be added in version ``1.1``. For now, you will have to manually
|
|
|
|
This will be added in version ``1.1``. For now, you will have to manually
|
|
|
|
bootstrap the database. First, start the mail server stack:
|
|
|
|
bootstrap the database. First, start the mail server stack:
|
|
|
|
|
|
|
|
|
|
|
|