2017-05-06 01:45:13 +02:00
Before you run **mailcow: dockerized** , there are a few requirements that you should check:
2017-05-06 01:48:54 +02:00
2017-05-06 08:52:31 +02:00
!!! warning
2017-05-13 19:48:38 +02:00
When running mailcow: dockerized on a Debian 8 (Jessie) box, you should [switch to kernel 4.9 from Jessie backports ](https://packages.debian.org/jessie-backports/linux-image-amd64 ) to avoid a bug when running Docker containers with *healthchecks* ! For more details read: [github.com/docker/docker/issues/30402 ](https://github.com/docker/docker/issues/30402 )
2017-05-06 08:52:31 +02:00
!!! info
2018-01-16 15:08:46 +01:00
- mailcow: dockerized requires [some ports ](#default-ports ) to be open for incoming connections, so make sure that your firewall is not blocking these.
2018-01-16 15:21:32 +01:00
- Make sure that no other application is interferring with mailcow's configuration, such as another mail service
2018-01-11 22:31:19 +01:00
- A correct DNS setup is crucial to every good mailserver setup, so please make sure you got at least the [basics ](prerequesite-dns/#the-minimal-dns-configuration ) covered before you begin!
2017-05-06 08:52:31 +02:00
- Make sure that your system has a correct date and [time setup ](#date-and-time ). This is crucial for stuff like two factor TOTP authentication.
2017-05-06 01:45:13 +02:00
## Minimum System Resources
Please make sure that your system has at least the following resources:
2017-07-05 12:18:42 +02:00
| Resource | mailcow: dockerized |
| ----------------------- | -------------------------------- |
| CPU | 1 GHz |
| RAM Â Â Â Â Â Â Â Â Â Â | 1 GiB (or better 1,5 GiB + Swap) |
| Disk | 5 GiB (without emails) |
| System Type | x86_64 |
ClamAV is a greedy RAM muncher. You can disable it in `mailcow.conf` by settings SKIP_CLAMD=y.
2017-05-06 01:45:13 +02:00
## Firewall & Ports
2017-05-17 15:32:15 +02:00
Please check if any of mailcow's standard ports are open and not in use by other applications:
2017-05-06 01:45:13 +02:00
2017-05-06 03:19:10 +02:00
```
# netstat -tulpn | grep -E -w '25|80|110|143|443|465|587|993|995'
2017-05-06 01:45:13 +02:00
```
If this command returns any results please remove or stop the application running on that port. You may also adjust mailcows ports via the `mailcow.conf` configuration file.
2017-05-06 02:07:53 +02:00
### Default Ports
2017-05-09 17:54:50 +02:00
If you have a firewall already up and running please make sure that these ports are open for incoming connections:
2017-05-06 01:45:13 +02:00
2017-07-05 12:05:40 +02:00
| Service | Protocol | Port | Container | Variable |
| --------------------|:--------:|:-------|:----------------|----------------------------------|
| Postfix SMTP | TCP | 25 | postfix-mailcow | `${SMTP_PORT}` |
| Postfix SMTPS | TCP | 465 | postfix-mailcow | `${SMTPS_PORT}` |
| Postfix Submission | TCP | 587 | postfix-mailcow | `${SUBMISSION_PORT}` |
| Dovecot IMAP | TCP | 143 | dovecot-mailcow | `${IMAP_PORT}` |
| Dovecot IMAPS | TCP | 993 | dovecot-mailcow | `${IMAPS_PORT}` |
| Dovecot POP3 | TCP | 110 | dovecot-mailcow | `${POP_PORT}` |
| Dovecot POP3S | TCP | 995 | dovecot-mailcow | `${POPS_PORT}` |
| Dovecot ManageSieve | TCP | 4190 | dovecot-mailcow | `${SIEVE_PORT}` |
2017-05-06 03:19:10 +02:00
| HTTP(S) | TCP | 80/443 | nginx-mailcow | `${HTTP_PORT}` / `${HTTPS_PORT}` |
2017-05-06 02:21:50 +02:00
2017-07-05 12:05:40 +02:00
To bind a service to an IP address, you can prepend the IP like this: `SMTP_PORT=1.2.3.4:25`
**Important**: You cannot use IP:PORT bindings in HTTP_PORT and HTTPS_PORT. Please use `HTTP_PORT=1234` and `HTTP_BIND=1.2.3.4` instead.
2018-01-16 15:08:46 +01:00
To unblock firewalls using ufw you can use the following commands:
```
# ufw allow 25
# ufw allow 80
# ufw allow 110
# ufw allow 143
# ufw allow 443
# ufw allow 465
# ufw allow 587
# ufw allow 993
# ufw allow 995
```
2017-07-05 12:05:40 +02:00
2017-05-06 02:38:21 +02:00
## Date and Time
2017-05-06 02:21:50 +02:00
To ensure that you have the correct date and time setup on your system, please check the output of `timedatectl status` :
2017-05-06 02:38:21 +02:00
```
2017-05-06 02:21:50 +02:00
$ timedatectl status
Local time: Sat 2017-05-06 02:12:33 CEST
Universal time: Sat 2017-05-06 00:12:33 UTC
RTC time: Sat 2017-05-06 00:12:32
Time zone: Europe/Berlin (CEST, +0200)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: yes
Last DST change: DST began at
Sun 2017-03-26 01:59:59 CET
Sun 2017-03-26 03:00:00 CEST
Next DST change: DST ends (the clock jumps one hour backwards) at
Sun 2017-10-29 02:59:59 CEST
Sun 2017-10-29 02:00:00 CET
```
2017-05-09 17:54:50 +02:00
The lines `NTP enabled: yes` and `NTP synchronized: yes` indicate wether you have NTP enabled and if it's synchronized.
2017-05-06 02:21:50 +02:00
To enable NTP you need to run the command `timedatectl set-ntp true` . You also need to edit your `/etc/systemd/timesyncd.conf` :
```
# vim /etc/systemd/timesyncd.conf
[Time]
Servers=0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org
```