https://github.com/jeboehm/docker-mailserver
Docker Mailserver based on the famous ISPMail guide
https://github.com/jeboehm/docker-mailserver
alpine-linux bats clamav docker docker-compose docker-mailserver dovecot imap-server integration-tests mailserver postfix roundcube rspamd
Last synced: 3 months ago
JSON representation
Docker Mailserver based on the famous ISPMail guide
- Host: GitHub
- URL: https://github.com/jeboehm/docker-mailserver
- Owner: jeboehm
- License: mit
- Created: 2016-05-31T18:35:58.000Z (about 9 years ago)
- Default Branch: main
- Last Pushed: 2025-04-02T11:57:06.000Z (3 months ago)
- Last Synced: 2025-04-02T12:25:43.723Z (3 months ago)
- Topics: alpine-linux, bats, clamav, docker, docker-compose, docker-mailserver, dovecot, imap-server, integration-tests, mailserver, postfix, roundcube, rspamd
- Language: Shell
- Homepage:
- Size: 758 KB
- Stars: 385
- Watchers: 12
- Forks: 98
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-starred - jeboehm/docker-mailserver - Docker Mailserver based on the famous ISPMail guide (docker)
README
# docker-mailserver
Docker Mailserver based on the famous [ISPMail guide](https://workaround.org/ispmail/).
All images are based on [Alpine Linux](https://alpinelinux.org) and are so small as possible.[Changelog](https://github.com/jeboehm/docker-mailserver/releases)
## Build status
[](https://github.com/jeboehm/docker-mailserver/actions/workflows/build-multiarch.yml)
[](https://github.com/jeboehm/docker-mailserver/actions/workflows/test.yml)
[](https://github.com/jeboehm/docker-mailserver/actions/workflows/create-release.yml)## Features
- POP3, IMAP, SMTP with user authentication
- TLS enforced
- Webmail interface
- Server-side mail filtering, rule configuration via web frontend
- Spam- and malware filter
- Catchall address support
- Restricted sender addresses
- Spamfilter is trained just by moving emails to or out of the junk folder
- Uses RBL (real time black hole lists) to block already known spam senders
- Greylisting only when incoming mail is likely spam
- DKIM message signing
- Quota support
- Notifications when exceeding the quota
- Web management interface to create / remove accounts, domains and aliases
- Support of send only accounts which are not allowed to receive but send mails
- IMAP, POP3 and malware filters can be disabled if they are not used
- FTS (Full-Text Search) support using [fts-xapian](https://github.com/grosjo/fts-xapian) for fast message searching
- Permanent self testing by Docker's healthcheck feature
- Developed with high quality assurance standards
- Address extension (-)## Installation (basic setup)
1. Run `git clone [email protected]:jeboehm/docker-mailserver.git`
2. Copy the file `.env.dist` to `.env` and change the variables in it according to your needs.
The variables are described in the [Wiki](https://github.com/jeboehm/docker-mailserver/wiki/Configuration-variables).
3. Run `bin/production.sh pull` to download the images.
4. Run `bin/production.sh up -d` to start the services.
5. After a few seconds you can access the services listed in the paragraph [Services](#Services).
6. Create your first email address and an admin user by running `bin/production.sh run --rm web setup.sh`.
The wizard will ask you a few questions to set everything up.
7. Now you can login to the management interface with your new account credentials.## Installation on Kubernetes / k8s (beta)
### TL;DR
```bash
helm repo add mailserver https://jeboehm.github.io/mailserver-charts/
helm search repo mailserver
helm install my-release mailserver/docker-mailserver
```You can find `values.yaml` and more information in the [mailserver-charts repository](https://github.com/jeboehm/mailserver-charts/tree/main/charts/docker-mailserver).
## Screenshots
### Manage users

### Manage aliases

### DKIM setup

## Documentation
- [Configuration](https://github.com/jeboehm/docker-mailserver/wiki/Configuration-variables)
- Advanced setup:
- [Use own TLS certficates](https://github.com/jeboehm/docker-mailserver/wiki/Howto:-Use-Your-Own-TLS-Certificates)
- [Use another MySQL instance](https://github.com/jeboehm/docker-mailserver/wiki/Howto:-Use-Another-MySQL-Instance)
- [Use the web service behind nginx-proxy](https://github.com/jeboehm/docker-mailserver/wiki/Howto:-Use-The-Web-Service-Behind-nginx-proxy)
- [Container health monitoring](https://github.com/jeboehm/docker-mailserver/wiki/Howto:-Container-Health-Monitoring)
- [Disable malware scanning](https://github.com/jeboehm/docker-mailserver/wiki/Howto:-Disable-Malware-Scanning)
- [Advanced malware signatures](https://github.com/jeboehm/docker-mailserver/wiki/Howto:-Advanced-Malware-Signatures)
- [Use an external mail relay](https://github.com/jeboehm/docker-mailserver/wiki/Howto:-Use-External-Mail-Relay-For-Sending-Mails)
- [Add plugins to Roundcube](https://github.com/jeboehm/docker-mailserver/wiki/Howto:-Add-Plugins-To-Roundcube-Webmail)
- Features:
- [Local address extension](https://github.com/jeboehm/docker-mailserver/wiki/Feature:-Local-Address-Extension)
- [Sender policy framework, SPF]()
- [DKIM](https://github.com/jeboehm/docker-mailserver/wiki/Feature:-DKIM)
- Technical details:
- [Data storage]()
- [Filtering](https://github.com/jeboehm/docker-mailserver/wiki/Info:-Mail-Filtering)
- [Component overview](https://github.com/jeboehm/docker-mailserver/wiki/Info:-Component-Overview)
- [DockerHub images](https://github.com/jeboehm/docker-mailserver/wiki/Info:-Images-On-DockerHub)
- [Upgrading](https://github.com/jeboehm/docker-mailserver/wiki/Upgrading)
- [Troubleshooting](https://github.com/jeboehm/docker-mailserver/wiki/Troubleshooting)## Services
| Service | Address |
| ------------------------------------------ | ---------------------------- |
| POP3 (starttls needed) | 127.0.0.1:110 |
| POP3S | 127.0.0.1:995 |
| IMAP (starttls needed) | 127.0.0.1:143 |
| IMAPS | 127.0.0.1:993 |
| SMTP | 127.0.0.1:25 |
| Mail Submission (starttls needed) | 127.0.0.1:587 |
| Mail Submission (SSL, disabled by default) | 127.0.0.1:465 |
| Management Interface | http://127.0.0.1:81/manager/ |
| Webmail | http://127.0.0.1:81/webmail/ |
| Rspamd Webinterface | http://127.0.0.1:81/rspamd/ |