mirror of
https://github.com/docker-mailserver/docker-mailserver.git
synced 2024-01-19 02:48:50 +00:00
formatting files according to standard (#1619)
* added EditorConfig linting * adding `eclint` as Travis script target * re-adjusted .pem files to have a newline
This commit is contained in:
parent
9f7414d95f
commit
a0791ef457
|
@ -28,8 +28,6 @@ indent_size = 2
|
|||
|
||||
# directories created by git submodules
|
||||
[{test/bats/**,test/test_helper/bats-assert/**,test/test_helper/bats-support/**,target/docker-configomat/**}]
|
||||
insert_final_newline = none
|
||||
indent_style = none
|
||||
indent_size = none
|
||||
trim_trailing_whitespace = none
|
||||
end_of_line = none
|
||||
|
|
16
.travis.yml
16
.travis.yml
|
@ -10,20 +10,27 @@ env:
|
|||
global:
|
||||
- HADOLINT_VERSION=1.17.1
|
||||
- SHELLCHECK_VERSION=0.7.1
|
||||
- ECLINT_VERSION=2.1.0
|
||||
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- xz-utils
|
||||
- xz-utils
|
||||
|
||||
services:
|
||||
- docker
|
||||
|
||||
before_install:
|
||||
- sudo curl -L https://github.com/hadolint/hadolint/releases/download/v$HADOLINT_VERSION/hadolint-$(uname -s)-$(uname -m) -o /usr/local/bin/hadolint
|
||||
# HADOLINT
|
||||
- sudo curl -L https://github.com/hadolint/hadolint/releases/download/v${HADOLINT_VERSION}/hadolint-$(uname -s)-$(uname -m) -o /usr/local/bin/hadolint
|
||||
- sudo chmod +rx /usr/local/bin/hadolint
|
||||
- sudo wget -qO- "https://github.com/koalaman/shellcheck/releases/download/v${SHELLCHECK_VERSION}/shellcheck-v${SHELLCHECK_VERSION}.linux.x86_64.tar.xz" | tar -xJv
|
||||
- sudo cp "shellcheck-v${SHELLCHECK_VERSION}/shellcheck" /usr/bin/
|
||||
# SHELLCHECK
|
||||
- sudo wget -qO- "https://github.com/koalaman/shellcheck/releases/download/v${SHELLCHECK_VERSION}/shellcheck-v${SHELLCHECK_VERSION}.linux.x86_64.tar.xz" | tar -xJ
|
||||
- sudo mv "shellcheck-v${SHELLCHECK_VERSION}/shellcheck" /usr/bin/
|
||||
# ECLINT
|
||||
- sudo wget -qO- "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/${ECLINT_VERSION}/ec-linux-amd64.tar.gz" | tar -xaz
|
||||
- sudo mv bin/ec-linux-amd64 /usr/bin/eclint
|
||||
- sudo chmod +x /usr/bin/eclint
|
||||
|
||||
install:
|
||||
- make lint
|
||||
|
@ -31,6 +38,7 @@ install:
|
|||
|
||||
script:
|
||||
- make shellcheck
|
||||
- make eclint
|
||||
- make generate-accounts run generate-accounts-after-run fixtures tests
|
||||
|
||||
after_script:
|
||||
|
|
146
Dockerfile
146
Dockerfile
|
@ -4,13 +4,13 @@ ARG VCS_REF
|
|||
ARG VCS_VERSION
|
||||
|
||||
LABEL maintainer="Thomas VIAL" \
|
||||
org.label-schema.name="docker-mailserver" \
|
||||
org.label-schema.description="A fullstack but simple mailserver (smtp, imap, antispam, antivirus, ssl...)" \
|
||||
org.label-schema.url="https://github.com/tomav/docker-mailserver" \
|
||||
org.label-schema.vcs-ref=$VCS_REF \
|
||||
org.label-schema.vcs-url="https://github.com/tomav/docker-mailserver" \
|
||||
org.label-schema.version=$VCS_VERSION \
|
||||
org.label-schema.schema-version="1.0"
|
||||
org.label-schema.name="docker-mailserver" \
|
||||
org.label-schema.description="A fullstack but simple mailserver (smtp, imap, antispam, antivirus, ssl...)" \
|
||||
org.label-schema.url="https://github.com/tomav/docker-mailserver" \
|
||||
org.label-schema.vcs-ref=$VCS_REF \
|
||||
org.label-schema.vcs-url="https://github.com/tomav/docker-mailserver" \
|
||||
org.label-schema.version=$VCS_VERSION \
|
||||
org.label-schema.schema-version="1.0"
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
ENV VIRUSMAILS_DELETE_DELAY=7
|
||||
|
@ -33,76 +33,76 @@ RUN \
|
|||
apt-get -y upgrade && \
|
||||
apt-get -y install postfix && \
|
||||
apt-get -y install --no-install-recommends \
|
||||
altermime \
|
||||
amavisd-new \
|
||||
apt-transport-https \
|
||||
arj \
|
||||
binutils \
|
||||
bzip2 \
|
||||
ca-certificates \
|
||||
cabextract \
|
||||
clamav \
|
||||
clamav-daemon \
|
||||
cpio \
|
||||
curl \
|
||||
ed \
|
||||
fail2ban \
|
||||
fetchmail \
|
||||
file \
|
||||
gamin \
|
||||
gzip \
|
||||
gnupg \
|
||||
iproute2 \
|
||||
iptables \
|
||||
locales \
|
||||
logwatch \
|
||||
lhasa \
|
||||
libdate-manip-perl \
|
||||
liblz4-tool \
|
||||
libmail-spf-perl \
|
||||
libnet-dns-perl \
|
||||
libsasl2-modules \
|
||||
lrzip \
|
||||
lzop \
|
||||
netcat-openbsd \
|
||||
nomarch \
|
||||
opendkim \
|
||||
opendkim-tools \
|
||||
opendmarc \
|
||||
pax \
|
||||
pflogsumm \
|
||||
p7zip-full \
|
||||
postfix-ldap \
|
||||
postfix-pcre \
|
||||
postfix-policyd-spf-python \
|
||||
postsrsd \
|
||||
pyzor \
|
||||
razor \
|
||||
rpm2cpio \
|
||||
rsyslog \
|
||||
sasl2-bin \
|
||||
spamassassin \
|
||||
supervisor \
|
||||
postgrey \
|
||||
unrar-free \
|
||||
unzip \
|
||||
whois \
|
||||
xz-utils \
|
||||
altermime \
|
||||
amavisd-new \
|
||||
apt-transport-https \
|
||||
arj \
|
||||
binutils \
|
||||
bzip2 \
|
||||
ca-certificates \
|
||||
cabextract \
|
||||
clamav \
|
||||
clamav-daemon \
|
||||
cpio \
|
||||
curl \
|
||||
ed \
|
||||
fail2ban \
|
||||
fetchmail \
|
||||
file \
|
||||
gamin \
|
||||
gzip \
|
||||
gnupg \
|
||||
iproute2 \
|
||||
iptables \
|
||||
locales \
|
||||
logwatch \
|
||||
lhasa \
|
||||
libdate-manip-perl \
|
||||
liblz4-tool \
|
||||
libmail-spf-perl \
|
||||
libnet-dns-perl \
|
||||
libsasl2-modules \
|
||||
lrzip \
|
||||
lzop \
|
||||
netcat-openbsd \
|
||||
nomarch \
|
||||
opendkim \
|
||||
opendkim-tools \
|
||||
opendmarc \
|
||||
pax \
|
||||
pflogsumm \
|
||||
p7zip-full \
|
||||
postfix-ldap \
|
||||
postfix-pcre \
|
||||
postfix-policyd-spf-python \
|
||||
postsrsd \
|
||||
pyzor \
|
||||
razor \
|
||||
rpm2cpio \
|
||||
rsyslog \
|
||||
sasl2-bin \
|
||||
spamassassin \
|
||||
supervisor \
|
||||
postgrey \
|
||||
unrar-free \
|
||||
unzip \
|
||||
whois \
|
||||
xz-utils \
|
||||
# use Dovecot community repo to react faster on security updates
|
||||
#curl https://repo.dovecot.org/DOVECOT-REPO-GPG | gpg --import && \
|
||||
#gpg --export ED409DA1 > /etc/apt/trusted.gpg.d/dovecot.gpg && \
|
||||
#echo "deb https://repo.dovecot.org/ce-2.3-latest/debian/stretch stretch main" > /etc/apt/sources.list.d/dovecot-community.list && \
|
||||
#apt-get update -q --fix-missing && \
|
||||
#apt-get -y install --no-install-recommends \
|
||||
dovecot-core \
|
||||
dovecot-imapd \
|
||||
dovecot-ldap \
|
||||
dovecot-lmtpd \
|
||||
dovecot-managesieved \
|
||||
dovecot-pop3d \
|
||||
dovecot-sieve \
|
||||
dovecot-solr \
|
||||
&& \
|
||||
dovecot-core \
|
||||
dovecot-imapd \
|
||||
dovecot-ldap \
|
||||
dovecot-lmtpd \
|
||||
dovecot-managesieved \
|
||||
dovecot-pop3d \
|
||||
dovecot-sieve \
|
||||
dovecot-solr \
|
||||
&& \
|
||||
apt-get autoclean && \
|
||||
rm -rf /var/lib/apt/lists/* && \
|
||||
rm -rf /usr/share/locale/* && \
|
||||
|
@ -151,7 +151,7 @@ COPY target/postfix/ldap-users.cf target/postfix/ldap-groups.cf target/postfix/l
|
|||
# Enables Spamassassin CRON updates and update hook for supervisor
|
||||
# hadolint ignore=SC2016
|
||||
RUN sed -i -r 's/^(CRON)=0/\1=1/g' /etc/default/spamassassin && \
|
||||
sed -i -r 's/^\$INIT restart/supervisorctl restart amavis/g' /etc/spamassassin/sa-update-hooks.d/amavisd-new
|
||||
sed -i -r 's/^\$INIT restart/supervisorctl restart amavis/g' /etc/spamassassin/sa-update-hooks.d/amavisd-new
|
||||
|
||||
# Enables Postgrey
|
||||
COPY target/postgrey/postgrey /etc/default/postgrey
|
||||
|
@ -244,7 +244,7 @@ WORKDIR /
|
|||
|
||||
# Switch iptables and ip6tables to legacy for fail2ban
|
||||
RUN update-alternatives --set iptables /usr/sbin/iptables-legacy \
|
||||
&& update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
|
||||
&& update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
|
||||
|
||||
|
||||
EXPOSE 25 587 143 465 993 110 995 4190
|
||||
|
|
18
Makefile
18
Makefile
|
@ -19,12 +19,8 @@ build:
|
|||
backup:
|
||||
# if backup directories exist, clean hasn't been called, therefore
|
||||
# we shouldn't overwrite it. It still contains the original content.
|
||||
@ if [ ! -d config.bak ]; then\
|
||||
cp -rp config config.bak;\
|
||||
fi
|
||||
@ if [ ! -d testconfig.bak ]; then\
|
||||
cp -rp test/config testconfig.bak;\
|
||||
fi
|
||||
@ if [ ! -d config.bak ]; then cp -rp config config.bak; fi
|
||||
@ if [ ! -d testconfig.bak ]; then cp -rp test/config testconfig.bak; fi
|
||||
|
||||
generate-accounts:
|
||||
@ docker run --rm -e MAIL_USER=user1@localhost.localdomain -e MAIL_PASS=mypassword -t $(NAME) /bin/sh -c 'echo "$$MAIL_USER|$$(doveadm pw -s SHA512-CRYPT -u $$MAIL_USER -p $$MAIL_PASS)"' > test/config/postfix-accounts.cf
|
||||
|
@ -173,3 +169,13 @@ shellcheck:
|
|||
else\
|
||||
echo -e '\nSuccess' ;\
|
||||
fi
|
||||
|
||||
eclint:
|
||||
@ echo -e "Testing file formatting according to .editorconfig\n"
|
||||
@ printf "Version %s\n\n" "$$(/usr/bin/eclint --version)"
|
||||
@ if /usr/bin/eclint -exclude "\.bats$$" | grep .; then\
|
||||
echo -e "\nError" ;\
|
||||
exit 1 ;\
|
||||
else\
|
||||
echo -e '\nSuccess' ;\
|
||||
fi
|
||||
|
|
43
README.md
43
README.md
|
@ -15,13 +15,13 @@
|
|||
[shields::gitter]: https://img.shields.io/gitter/room/tomav/docker-mailserver.svg
|
||||
[gitter]: https://gitter.im/tomav/docker-mailserver
|
||||
|
||||
A fullstack but simple mail server (smtp, imap, antispam, antivirus...).
|
||||
A fullstack but simple mail server (SMTP, IMAP, Antispam, Antivirus...).
|
||||
Only configuration files, no SQL database. Keep it simple and versioned.
|
||||
Easy to deploy and upgrade.
|
||||
|
||||
Why I created this image: [Simple Mail Server with Docker](http://tvi.al/simple-mail-server-with-docker/)
|
||||
|
||||
1. [Announcement](#announcement)
|
||||
1. [Announcements](#announcements)
|
||||
2. [Includes](#includes)
|
||||
3. [Issues & Contributing](#issues--contributing)
|
||||
4. [Requirements](#requirements)
|
||||
|
@ -29,24 +29,19 @@ Why I created this image: [Simple Mail Server with Docker](http://tvi.al/simple-
|
|||
6. [Examples](#examples)
|
||||
7. [Environment Variables](#environment-variables)
|
||||
|
||||
## Announcement
|
||||
## Announcements
|
||||
|
||||
At this point we have merged the next branch based on Debian Buster into master.
|
||||
That means the docker image latest uses Buster. The change may break things!
|
||||
|
||||
The following possibly breaking changes are known:
|
||||
|
||||
- Filebeat is removed and should be handled by another container, see [Wiki](https://github.com/tomav/docker-mailserver/wiki/).
|
||||
- Dovecot will be downgraded a little bit (same major version) so that we can use the official Debian version.
|
||||
|
||||
If you want to stick to the old version a while longer, either switch to stable or to a specific version.
|
||||
If you run into problems, please raise issues and ask for help. Don't forget to provide details.
|
||||
1. Debian Buster is now Docker base image
|
||||
- Filebeat was removed
|
||||
- Dovecot was downgraded
|
||||
2. ELK was removed
|
||||
3. New contributing guidelines were added
|
||||
|
||||
## Includes
|
||||
|
||||
- [Postfix](http://www.postfix.org) with smtp or ldap auth
|
||||
- [Dovecot](https://www.dovecot.org) for sasl, imap (and optional pop3) with ssl support, with ldap auth, sieve and [quotas](https://github.com/tomav/docker-mailserver/wiki/Configure-Accounts#mailbox-quota)
|
||||
- saslauthd with ldap auth
|
||||
- [Postfix](http://www.postfix.org) with SMTP or LDAP auth
|
||||
- [Dovecot](https://www.dovecot.org) for SASL, IMAP (and optional POP3) with ssl support, with ldap auth, sieve and [quotas](https://github.com/tomav/docker-mailserver/wiki/Configure-Accounts#mailbox-quota)
|
||||
- SASLauthd with LDAP auth
|
||||
- [Amavis](https://www.amavis.org/)
|
||||
- [Spamassasin](http://spamassassin.apache.org/) supporting custom rules
|
||||
- [ClamAV](https://www.clamav.net/) with automatic updates
|
||||
|
@ -112,21 +107,11 @@ curl -o env-mailserver https://raw.githubusercontent.com/tomav/docker-mailserver
|
|||
|
||||
**Note:** If you want to use a bare domain (host name equals domain name) see [FAQ](https://github.com/tomav/docker-mailserver/wiki/FAQ-and-Tips#can-i-use-nakedbare-domains-no-host-name).
|
||||
|
||||
### Start the Container
|
||||
### Get up and running
|
||||
|
||||
``` BASH
|
||||
docker-compose up -d mail
|
||||
```
|
||||
|
||||
### Create your mail accounts
|
||||
|
||||
``` BASH
|
||||
./setup.sh email add <user@domain> [<password>]
|
||||
```
|
||||
|
||||
### Generate DKIM keys
|
||||
|
||||
``` BASH
|
||||
./setup.sh config dkim
|
||||
```
|
||||
|
||||
|
@ -150,10 +135,6 @@ And don't forget to have a look at the remaining functions of the `setup.sh` scr
|
|||
|
||||
If you got any problems with SPF and/or forwarding mails, give [SRS](https://github.com/roehling/postsrsd/blob/master/README.md) a try. You enable SRS by setting `ENABLE_SRS=1`. See the variable description for further information.
|
||||
|
||||
#### For informational purposes
|
||||
|
||||
`restart: always` ensures that the mail server container (and Filebeat/ELK containers when using the mail server together with ELK stack) is automatically restarted by Docker in cases like a Docker service or host restart or container exit.
|
||||
|
||||
#### Exposed ports
|
||||
|
||||
| Protocol | Opt-in Encryption ¹ | Enforced Encryption | Purpose |
|
||||
|
|
|
@ -1627,7 +1627,7 @@ function _setup_security_stack()
|
|||
|
||||
if [[ ${DEFAULT_VARS['EXPLICITLY_DEFINED_SPAMASSASSIN_SPAM_TO_INBOX']} == "0" ]]
|
||||
then
|
||||
_notify 'warn' "Spam messages WILL NOT BE DELIVERED, you will NOT be notified of ANY message bounced. Please define SPAMASSASSIN_SPAM_TO_INBOX explicitly."
|
||||
_notify 'warn' "Spam messages WILL NOT BE DELIVERED, you will NOT be notified of ANY message bounced. Please define SPAMASSASSIN_SPAM_TO_INBOX explicitly."
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
|
Loading…
Reference in a new issue