2024-10-14 20:18:00 +05:00
|
|
|
---
|
|
|
|
- name: Create mail network
|
|
|
|
become: true
|
|
|
|
community.docker.docker_network:
|
|
|
|
name: mail
|
|
|
|
- name: Create maddy volume
|
|
|
|
become: true
|
|
|
|
community.docker.docker_volume:
|
|
|
|
name: maddy
|
|
|
|
- name: Copy maddy config
|
|
|
|
become: true
|
|
|
|
ansible.builtin.template:
|
|
|
|
src: maddy.conf.j2
|
|
|
|
dest: /var/lib/docker/volumes/maddy/_data/maddy.conf
|
|
|
|
register: maddy_conf
|
|
|
|
- name: Run maddy
|
|
|
|
become: true
|
|
|
|
community.docker.docker_container:
|
|
|
|
name: maddy
|
|
|
|
image: foxcpp/maddy:0.7.1
|
|
|
|
networks:
|
|
|
|
- name: mail
|
2024-10-25 10:03:21 +05:00
|
|
|
- name: postgresql
|
2024-10-14 20:18:00 +05:00
|
|
|
ports:
|
2024-10-29 00:12:44 +05:00
|
|
|
- "25:25"
|
|
|
|
- "143:143"
|
|
|
|
- "465:465"
|
|
|
|
- "587:587"
|
|
|
|
- "993:993"
|
2024-10-14 20:18:00 +05:00
|
|
|
volumes:
|
|
|
|
- maddy:/data
|
2024-10-25 10:06:41 +05:00
|
|
|
- /etc/letsencrypt/live/{{ domain }}/fullchain.pem:/etc/tls/fullchain.pem:ro
|
|
|
|
- /etc/letsencrypt/live/{{ domain }}/privkey.pem:/etc/tls/privkey.pem:ro
|
2024-10-14 20:18:00 +05:00
|
|
|
recreate: "{{ maddy_conf.changed }}"
|
2024-10-30 17:55:20 +05:00
|
|
|
restart_policy: unless-stopped
|
2024-10-14 20:18:00 +05:00
|
|
|
- name: Get users
|
|
|
|
become: true
|
|
|
|
community.docker.docker_container_exec:
|
|
|
|
container: maddy
|
|
|
|
argv: ["maddy", "creds", "list"]
|
|
|
|
register: maddy_users
|
|
|
|
- name: Create users
|
|
|
|
become: true
|
|
|
|
community.docker.docker_container_exec:
|
|
|
|
container: maddy
|
|
|
|
argv: ["sh", "-c", "echo '{{ item.value }}' | maddy creds create {{ item.key }}"]
|
|
|
|
when: not item.key in maddy_users.stdout
|
|
|
|
no_log: True
|
|
|
|
loop: "{{ users | dict2items }}"
|
|
|
|
- name: Update passwords
|
|
|
|
become: true
|
|
|
|
community.docker.docker_container_exec:
|
|
|
|
container: maddy
|
|
|
|
argv: ["sh", "-c", "echo '{{ item.value }}' | maddy creds password {{ item.key }}"]
|
|
|
|
no_log: True
|
|
|
|
loop: "{{ users | dict2items }}"
|
|
|
|
- name: Get imap accounts
|
|
|
|
become: true
|
|
|
|
community.docker.docker_container_exec:
|
|
|
|
container: maddy
|
|
|
|
argv: ["maddy", "imap-acct", "list"]
|
|
|
|
register: maddy_imap_accounts
|
|
|
|
- name: Create imap accounts
|
|
|
|
become: true
|
|
|
|
community.docker.docker_container_exec:
|
|
|
|
container: maddy
|
|
|
|
argv: ["maddy", "imap-acct", "create", "{{ item.key }}"]
|
|
|
|
when: not item.key in maddy_imap_accounts.stdout
|
|
|
|
no_log: True
|
|
|
|
loop: "{{ users | dict2items }}"
|
2024-10-25 16:17:53 +05:00
|
|
|
- name: Run mta-sts container
|
|
|
|
become: true
|
|
|
|
community.docker.docker_container:
|
|
|
|
name: mta-sts-1
|
|
|
|
image: git.comfycamp.space/lumin/mta-sts:v0.1.2
|
|
|
|
networks:
|
|
|
|
- name: haproxy
|
|
|
|
env:
|
|
|
|
MTA_STS_MX: "{{ hostname }}"
|
|
|
|
restart_policy: unless-stopped
|