diff --git a/site.yml b/site.yml index d3da196044866e0b9bc5264bf266fe24fae552af..3b4db8f24e9a282aa6e40fe358bb1116a4aa0d1c 100644 --- a/site.yml +++ b/site.yml @@ -32,7 +32,8 @@ servicename: mail, basedir: /srv/mail, domain: "enteentelos.com", - mailserver: "mailserver.enteentelos.com" + mailserver: "mailserver.enteentelos.com", + listserver: "listserver.enteentelos.com" } ################################################## diff --git a/test/docker_mail/tasks/main.yaml b/test/docker_mail/tasks/main.yaml index 3bbd6815f3af33a7e95cc0ec6edb60b8395ec9d5..cbf172aff85e5d2fbd6ba9267c451c4e5b30ca3f 100644 --- a/test/docker_mail/tasks/main.yaml +++ b/test/docker_mail/tasks/main.yaml @@ -4,10 +4,10 @@ with_items: - { path: "{{ basedir }}/secrets/mailu_secret_key", length: 32 } - { path: "{{ basedir }}/secrets/mailu_admin_pass", length: 32 } - # - { path: "{{ basedir }}/secrets/hyperkitty_api_key", length: 28 } - # - { path: "{{ basedir }}/secrets/postgres_mailman_pass", length: 28 } - # - { path: "{{ basedir }}/secrets/mailman_secret_key", length: 28 } - # - { path: "{{ basedir }}/secrets/mailman_restapi_pass", length: 28 } + - { path: "{{ basedir }}/secrets/hyperkitty_api_key", length: 28 } + - { path: "{{ basedir }}/secrets/mailman_db_pass", length: 28 } + - { path: "{{ basedir }}/secrets/mailman_secret_key", length: 28 } + - { path: "{{ basedir }}/secrets/mailman_restapi_pass", length: 28 } # - name: pakete installieren @@ -25,11 +25,11 @@ - "{{ basedir }}" - "{{ basedir }}/secrets" - "{{ basedir }}/mailu" - # - "{{ basedir }}/mailman-core" - # - "{{ basedir }}/mailman-core/var" - # - "{{ basedir }}/mailman-core/var/data" - # - "{{ basedir }}/mailman-web" - # - "{{ basedir }}/mailman-postgres" + - "{{ basedir }}/mailman-core" + - "{{ basedir }}/mailman-core/var" + - "{{ basedir }}/mailman-core/var/data" + - "{{ basedir }}/mailman-web" + - "{{ basedir }}/mailman-db" # - name: "create folder struct for {{ servicename }} with rights" diff --git a/test/docker_mail/templates/docker-compose.yml b/test/docker_mail/templates/docker-compose.yml index 96b27d1cbedd0f4975b62517711f96644a5c7c04..bb1eaec53a180974d0cd732b2229fbae124a708b 100644 --- a/test/docker_mail/templates/docker-compose.yml +++ b/test/docker_mail/templates/docker-compose.yml @@ -4,7 +4,7 @@ services: # External dependencies redis: - container_name: mailu_redis + container_name: mailu-redis image: redis:alpine restart: always volumes: @@ -67,7 +67,7 @@ services: - 192.168.203.254 resolver: - container_name: mailu_unbound + container_name: mailu-unbound image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}unbound:${MAILU_VERSION:-2.0} env_file: mailu.env restart: always @@ -76,7 +76,7 @@ services: ipv4_address: 192.168.203.254 admin: - container_name: mailu_admin + container_name: mailu-admin image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}admin:${MAILU_VERSION:-2.0} restart: always env_file: mailu.env @@ -142,7 +142,7 @@ services: - 192.168.203.254 antispam: - container_name: mailu_rspamd + container_name: mailu-rspamd image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}rspamd:${MAILU_VERSION:-2.0} hostname: antispam restart: always @@ -168,7 +168,7 @@ services: # Optional services # Webmail webmail: - container_name: mailu_roundcube + container_name: mailu-roundcube image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}webmail:${MAILU_VERSION:-2.0} restart: always env_file: mailu.env @@ -180,6 +180,77 @@ services: depends_on: - front + # Additional Services: mailman + mailman-core: + container_name: mailman-core + image: maxking/mailman-core:0.4 + restart: always + depends_on: + - mailman-db + volumes: + - "{{ basedir }}/mailman-core:/opt/mailman:rw,z" + environment: + - DATABASE_URL=postgres://mailman:{{ mailman_db_pass }}@mailman-db/mailmandb + - MTA=postfix + - MM_HOSTNAME=mailman-core + - SMTP_HOST=postfix + - SMTP_PORT=25 + - MAILMAN_REST_USER=mailman + - MAILMAN_REST_PASSWORD={{ mailman_restapi_pass }} + - HYPERKITTY_URL=http://mailman-web:8000/hyperkitty + - HYPERKITTY_API_KEY={{ hyperkitty_api_key }} + networks: + - default + + mailman-web: + image: maxking/mailman-web:0.4 + restart: always + depends_on: + - mailman-db + volumes: + - "{{ basedir }}/mailman-web:/opt/mailman-web-data:rw,z" + environment: + - DATABASE_URL=postgres://mailman:{{ mailman_db_pass }}@mailman-db/mailmandb + - HYPERKITTY_API_KEY={{ hyperkitty_api_key }} + - SECRET_KEY={{ mailman_secret_key }} + - SERVE_FROM_DOMAIN={{ listserver }} + - MAILMAN_REST_URL=http://mailman-core:8001 + - MAILMAN_REST_USER=mailman + - MAILMAN_REST_PASSWORD={{ mailman_restapi_pass }} + networks: + - default + + mailman-db: + container_name: mailman-db + image: postgres:11-alpine + restart: always + volumes: + - "{{ basedir }}/mailman-db:/var/lib/postgresql/data" + environment: + - POSTGRES_DB=mailmandb + - POSTGRES_USER=mailman + - POSTGRES_PASSWORD={{ mailman_db_pass }} + networks: + - default + + # mailman-nginx: + # container_name: mailman-nginx + # image: nginx:1.19 + # restart: always + # depends_on: + # - mailman-web + # volumes: + # - "{{ basedir }}/mailman-web/:/opt/mailman-web-data:ro,z" + # - "{{ basedir }}/mailman-nginx.conf:/etc/nginx/conf.d/default.conf:ro" + # labels: + # - traefik.enable=true + # - traefik.http.routers.{{ servicename }}-mailman.rule=Host(`{{ listserver }}`) + # - traefik.http.routers.{{ servicename }}-mailman.entrypoints=websecure + # - traefik.http.services.{{ servicename }}-mailman.loadbalancer.server.port=80 + # networks: + # - mailman + # - web + networks: default: driver: bridge