docker-compose.yml 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. services:
  2. mailserver:
  3. image: hardware/mailserver:1.1-stable
  4. container_name: mailserver_mailserver
  5. restart: unless-stopped
  6. domainname: odamus.com
  7. hostname: mail
  8. ports:
  9. - "25:25"
  10. - "110:110"
  11. - "143:143"
  12. - "465:465"
  13. - "587:587"
  14. - "993:993"
  15. - "995:995"
  16. - "4190:4190"
  17. - "11334:11334"
  18. environment:
  19. - FQDN=mail.odamus.com
  20. - DOMAIN=odamus.com
  21. - DBDRIVER=pgsql
  22. - DBUSER=odamus_mail
  23. - DBNAME=postfix
  24. - DBPORT=5432
  25. - DBHOST=postgres_simple
  26. - DBPASS=2olT5bpUj2lJUhY8eYxvcqFIx4KB2m
  27. - RSPAMD_PASSWORD=PvA7Nuk54P4iuXhOKbZJ4UpR3yz6Sk
  28. - ADD_DOMAINS=nuuditalu.ee
  29. - ENABLE_POP3=true
  30. - ENABLE_FETCHMAIL=true
  31. - DISABLE_RSPAMD_MODULE=true
  32. - DISABLE_CLAMAV=true
  33. - RSPAMD_CONTROLLER_BIND=127.0.0.1:11334
  34. - RSPAMD_SECURE_IP=127.0.0.1
  35. - RSPAMD_ENABLE_PASSWORD=PvA7Nuk54P4iuXhOKbZJ4UpR3yz6Sk
  36. - RSPAMD_WWWDIR=/usr/share/rspamd/www
  37. volumes:
  38. - mailserver_mail:/var/mail
  39. - /etc/localtime:/etc/localtime:ro
  40. - mailserver_backups:/srv/backups
  41. - mailserver_ssl:/ssl
  42. - traefik_certs:/etc/letsencrypt/acme:ro
  43. - ./configs/postfix_custom_conf:/var/mail/postfix/custom.conf:ro
  44. - ./configs/postfix_sender_access:/var/mail/postfix/sender_access:ro
  45. - ./configs/dumpcerts_traefik:/usr/local/bin/dumpcerts.traefik.v2.sh:ro
  46. - ./configs/certs_helper:/usr/local/bin/certs_helper.sh:ro
  47. - ./configs/run_sh:/usr/local/bin/run.sh:ro
  48. networks:
  49. - traefik-network
  50. - db-migration
  51. labels:
  52. - "traefik.enable=true"
  53. - traefik.docker.network=traefik-network
  54. - traefik.constraint-label=traefik-network
  55. - traefik.http.routers.mailserver-http.middlewares=http-to-https
  56. - traefik.http.routers.mailserver-https.rule=Host(`spam.odamus.com`)
  57. - traefik.http.routers.mailserver-https.entrypoints=websecure
  58. - traefik.http.routers.mailserver-http.rule=Host(`spam.odamus.com`)
  59. - traefik.http.routers.mailserver-http.entrypoints=web
  60. - "traefik.http.routers.mailserver-https.tls.certresolver=mychallenge"
  61. - traefik.http.services.mailserver.loadbalancer.server.port=11334
  62. - traefik.port=11334
  63. postfixadmin:
  64. image: hardware/postfixadmin
  65. container_name: mailserver_postfixadmin
  66. restart: unless-stopped
  67. environment:
  68. - DBDRIVER=pgsql
  69. - DBUSER=odamus_mail
  70. - DBNAME=postfix
  71. - DBPORT=5432
  72. - DBHOST=postgres_simple
  73. - DBPASS=2olT5bpUj2lJUhY8eYxvcqFIx4KB2m
  74. - DOMAIN=odamus.com
  75. volumes:
  76. - mailserver_postfixadmin:/postfixadmin
  77. - /etc/localtime:/etc/localtime
  78. - mailserver_backups:/srv/backups
  79. networks:
  80. - traefik-network
  81. - db-migration
  82. labels:
  83. - "traefik.enable=true"
  84. - traefik.docker.network=traefik-network
  85. - traefik.constraint-label=traefik-network
  86. - traefik.http.routers.postfixadmin-http.middlewares=http-to-https
  87. - traefik.http.routers.postfixadmin-https.rule=Host(`postfixadmin.odamus.com`)
  88. - traefik.http.routers.postfixadmin-https.entrypoints=websecure
  89. - traefik.http.routers.postfixadmin-http.rule=Host(`postfixadmin.odamus.com`)
  90. - traefik.http.routers.postfixadmin-http.entrypoints=web
  91. - "traefik.http.routers.postfixadmin-https.tls.certresolver=mychallenge"
  92. - traefik.http.services.postfixadmin.loadbalancer.server.port=8888
  93. rainloop:
  94. image: hardware/rainloop
  95. container_name: mailserver_rainloop
  96. restart: unless-stopped
  97. volumes:
  98. - mailserver_rainloop:/rainloop/data
  99. - /etc/localtime:/etc/localtime
  100. - mailserver_backups:/srv/backups
  101. networks:
  102. - traefik-network
  103. labels:
  104. - "traefik.enable=true"
  105. - traefik.docker.network=traefik-network
  106. - traefik.constraint-label=traefik-network
  107. - traefik.http.routers.webmail-http.middlewares=http-to-https
  108. - traefik.http.routers.webmail-https.rule=Host(`webmail.odamus.com`)
  109. - traefik.http.routers.webmail-https.entrypoints=websecure
  110. - traefik.http.routers.webmail-http.rule=Host(`webmail.odamus.com`)
  111. - traefik.http.routers.webmail-http.entrypoints=web
  112. - "traefik.http.routers.webmail-https.tls.certresolver=mychallenge"
  113. - traefik.http.services.webmail.loadbalancer.server.port=8888
  114. mta:
  115. image: nginx:latest
  116. container_name: mailserver_mta
  117. restart: unless-stopped
  118. volumes:
  119. - /etc/localtime:/etc/localtime
  120. - mailserver_html:/usr/share/nginx/html
  121. - mailserver_backups:/srv/backups
  122. networks:
  123. - traefik-network
  124. labels:
  125. - "traefik.enable=true"
  126. - traefik.docker.network=traefik-network
  127. - traefik.constraint-label=traefik-network
  128. - traefik.http.routers.mta-sts-https.rule=Host(`mta-sts.odamus.com`)
  129. - traefik.http.routers.mta-sts-https.entrypoints=websecure
  130. - traefik.http.routers.mta-sts-http.rule=Host(`mta-sts.odamus.com`)
  131. - traefik.http.routers.mta-sts-http.entrypoints=web
  132. - "traefik.http.routers.mta-sts-https.tls.certresolver=mychallenge"
  133. - traefik.http.services.mta-sts.loadbalancer.server.port=80
  134. - traefik.http.routers.mta-sts-http.service=mta-sts
  135. - traefik.http.routers.mta-sts-https.service=mta-sts
  136. - traefik.http.routers.mail-odamus-https.rule=Host(`mail.odamus.com`)
  137. - traefik.http.routers.mail-odamus-https.entrypoints=websecure
  138. - traefik.http.routers.mail-odamus-http.rule=Host(`mail.odamus.com`)
  139. - traefik.http.routers.mail-odamus-http.entrypoints=web
  140. - "traefik.http.routers.mail-odamus-https.tls.certresolver=mychallenge"
  141. - traefik.http.services.mail-odamus.loadbalancer.server.port=80
  142. - traefik.http.routers.mail-odamus-http.service=mta-sts
  143. - traefik.http.routers.mail-odamus-https.service=mta-sts
  144. volumes:
  145. mailserver_mail:
  146. external: true
  147. mailserver_backups:
  148. external: true
  149. mailserver_ssl:
  150. external: true
  151. mailserver_postfixadmin:
  152. external: true
  153. mailserver_rainloop:
  154. external: true
  155. mailserver_html:
  156. external: true
  157. traefik_certs:
  158. external: true
  159. networks:
  160. traefik-network:
  161. external: true
  162. db-migration:
  163. external: true