diff --git a/README.md b/README.md index 2af474f..30f50b0 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,9 @@ docker-dovecot ============== +[DockerHub](https://hub.docker.com/r/mbirth/dovecot) + Based on [dovecot/docker](https://github.com/dovecot/docker). -Just with Alpine Linux so it comes out as a 32MB image. - +Just with Alpine Linux so it comes out as a 32MB image and can be built for any platform +Alpine supports. diff --git a/build.sh b/build.sh index 1f62d31..92afc13 100755 --- a/build.sh +++ b/build.sh @@ -3,5 +3,4 @@ WHEREAMI=$(dirname $0) TODAY=$(date +'%Y-%m-%d') echo "Today: $TODAY" echo "Location: $WHEREAMI" -docker build -t "dovecot:$TODAY" -t "dovecot:latest" "$WHEREAMI/" - +docker build -t "mbirth/dovecot:$TODAY" -t "mbirth/dovecot:latest" "$WHEREAMI/" diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..8354043 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,11 @@ +version: "3.8" + +services: + dovecot: + image: mbirth/dovecot:latest + restart: unless-stopped + volumes: + - /opt/docker/dovecot/conf:/conf + - /opt/docker/dovecot/data:/data + ports: + - 10143:143 diff --git a/docker-compose_solr.yml b/docker-compose_solr.yml new file mode 100644 index 0000000..ec86d2f --- /dev/null +++ b/docker-compose_solr.yml @@ -0,0 +1,27 @@ +version: "3.8" + +services: + dovecot: + image: mbirth/dovecot:latest + restart: unless-stopped + volumes: + - /opt/docker/dovecot/conf:/conf + - /opt/docker/dovecot/data:/data + ports: + - 10143:143 + links: + - solr + depends_on: + - solr + + solr: + image: solr:latest + restart: unless-stopped + environment: + LANG: C.UTF-8 + SOLR_SSL_ENABLED: "false" + volumes: + - /opt/docker/dovecot/solr/var-solr:/var/solr + - /opt/docker/dovecot/solr:/setupdata + ports: + - 8983:8983 diff --git a/docker-compose_solr_traefik.yml b/docker-compose_solr_traefik.yml new file mode 100644 index 0000000..52b8c07 --- /dev/null +++ b/docker-compose_solr_traefik.yml @@ -0,0 +1,44 @@ +version: "3.8" + +services: + dovecot: + image: mbirth/dovecot:latest + restart: unless-stopped + volumes: + - /opt/docker/dovecot/conf:/conf + - /opt/docker/dovecot/data:/data + #ports: + # - 10143:143 + links: + - solr + depends_on: + - solr + networks: + - traefik-public + labels: + # Create TCP endpoint in Traefik called "imaps" on port 993 + # Traefik will do the TLS part and forward it plaintext to 143 here + traefik.enable: "true" + traefik.tcp.routers.dovecot.entrypoints: imaps + traefik.tcp.routers.dovecot.rule: HostSNI(`*`) + traefik.tcp.routers.dovecot.tls: true + traefik.tcp.routers.dovecot.tls.passthrough: false + traefik.tcp.routers.dovecot.tls.certresolver: le + traefik.tcp.routers.dovecot.tls.domains.main: "mailserver.domain.com" + traefik.tcp.services.dovecot.loadbalancer.server.port: "143" + + solr: + image: solr:latest + restart: unless-stopped + environment: + LANG: C.UTF-8 + SOLR_SSL_ENABLED: "false" + volumes: + - /opt/docker/dovecot/solr/var-solr:/var/solr + - /opt/docker/dovecot/solr:/setupdata + ports: + - 8983:8983 + +networks: + traefik-public: + external: true diff --git a/docker-compose_traefik.yml b/docker-compose_traefik.yml new file mode 100644 index 0000000..5d32a68 --- /dev/null +++ b/docker-compose_traefik.yml @@ -0,0 +1,28 @@ +version: "3.8" + +services: + dovecot: + image: mbirth/dovecot:latest + restart: unless-stopped + volumes: + - /opt/docker/dovecot/conf:/conf + - /opt/docker/dovecot/data:/data + #ports: + # - 10143:143 + networks: + - traefik-public + labels: + # Create TCP endpoint in Traefik called "imaps" on port 993 + # Traefik will do the TLS part and forward it plaintext to 143 here + traefik.enable: "true" + traefik.tcp.routers.dovecot.entrypoints: imaps + traefik.tcp.routers.dovecot.rule: HostSNI(`*`) + traefik.tcp.routers.dovecot.tls: true + traefik.tcp.routers.dovecot.tls.passthrough: false + traefik.tcp.routers.dovecot.tls.certresolver: le + traefik.tcp.routers.dovecot.tls.domains.main: "mailserver.domain.com" + traefik.tcp.services.dovecot.loadbalancer.server.port: "143" + +networks: + traefik-public: + external: true diff --git a/solr/docker-onlysolr.yml b/solr/docker-onlysolr.yml new file mode 100644 index 0000000..e0e46cb --- /dev/null +++ b/solr/docker-onlysolr.yml @@ -0,0 +1,14 @@ +version: "3.8" + +services: + solr: + image: solr:latest + restart: unless-stopped + environment: + LANG: C.UTF-8 + SOLR_SSL_ENABLED: "false" + volumes: + - /opt/docker/solr/var-solr:/var/solr + - /opt/docker/solr:/setupdata + ports: + - 8983:8983/tcp diff --git a/solr/dovecot/conf/schema.xml b/solr/dovecot/conf/schema.xml new file mode 100644 index 0000000..601a290 --- /dev/null +++ b/solr/dovecot/conf/schema.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id + diff --git a/solr/dovecot/conf/solrconfig.xml b/solr/dovecot/conf/solrconfig.xml new file mode 100644 index 0000000..3661874 --- /dev/null +++ b/solr/dovecot/conf/solrconfig.xml @@ -0,0 +1,289 @@ + + + + + + + 7.7.0 + + + + + + + + + + + + + + + + ${solr.data.dir:} + + + + + + + ${solr.ulog.dir:} + ${solr.ulog.numVersionBuckets:65536} + + + + + ${solr.autoCommit.maxTime:15000} + false + + + + + ${solr.autoSoftCommit.maxTime:-1} + + + + + + + + + + + + + + + + + + + + + + + + true + + + 20 + + + 200 + + + false + + + + + + + + + + + + + + + explicit + 10 + + + + + + _text_ + + + + + + diff --git a/solr/dovecot/schema.xml b/solr/dovecot/schema.xml new file mode 100644 index 0000000..601a290 --- /dev/null +++ b/solr/dovecot/schema.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id + diff --git a/solr/dovecot/solrconfig.xml b/solr/dovecot/solrconfig.xml new file mode 100644 index 0000000..3661874 --- /dev/null +++ b/solr/dovecot/solrconfig.xml @@ -0,0 +1,289 @@ + + + + + + + 7.7.0 + + + + + + + + + + + + + + + + ${solr.data.dir:} + + + + + + + ${solr.ulog.dir:} + ${solr.ulog.numVersionBuckets:65536} + + + + + ${solr.autoCommit.maxTime:15000} + false + + + + + ${solr.autoSoftCommit.maxTime:-1} + + + + + + + + + + + + + + + + + + + + + + + + true + + + 20 + + + 200 + + + false + + + + + + + + + + + + + + + explicit + 10 + + + + + + _text_ + + + + + +