diff --git a/group_vars/all/vars.yml b/group_vars/all/vars.yml index 0a0e925..de3f660 100644 --- a/group_vars/all/vars.yml +++ b/group_vars/all/vars.yml @@ -1,9 +1,9 @@ # vim: ft=yaml.ansible --- ssh_key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPd/4fQV7CL8/KVwbo/phiV5UdXFBIDlkZ+ps8C7FeRf - hostname: pi timezone: Europe/Copenhagen +base_domain: sapti.me hdd_name: storage hdd_mount_point: /opt/{{ hdd_name }} diff --git a/roles/docker_services/defaults/main.yml b/roles/docker_services/defaults/main.yml index 927aea9..e7102cd 100644 --- a/roles/docker_services/defaults/main.yml +++ b/roles/docker_services/defaults/main.yml @@ -1,6 +1,5 @@ # vim: ft=yaml.ansible --- -base_domain: sapti.me base_volume: "{{ hdd_mount_point }}/apps" services: @@ -8,6 +7,11 @@ services: volume: "{{ base_volume }}/caddy" version: 2-alpine + postfix: + volume: "{{ base_volume }}/postfix" + hostname: smtp.{{ base_domain }} + version: latest-alpine + emby: domain: watch.{{ base_domain }} volume: "{{ base_volume }}/emby" @@ -38,3 +42,6 @@ services: watchtower: version: arm64v8-1.5.1 + +sender_domains: + - "{{ services.nextcloud.domain }}" diff --git a/roles/docker_services/tasks/services/nextcloud.yml b/roles/docker_services/tasks/services/nextcloud.yml index e77a37c..96e9a24 100644 --- a/roles/docker_services/tasks/services/nextcloud.yml +++ b/roles/docker_services/tasks/services/nextcloud.yml @@ -76,6 +76,7 @@ PHP_UPLOAD_LIMIT: 16G networks: default: + postfix: services: aliases: - nextcloud @@ -88,5 +89,7 @@ - redis networks: + postfix: + external: true services: external: true diff --git a/roles/docker_services/tasks/services/postfix.yml b/roles/docker_services/tasks/services/postfix.yml new file mode 100644 index 0000000..ad04b97 --- /dev/null +++ b/roles/docker_services/tasks/services/postfix.yml @@ -0,0 +1,26 @@ +# vim: ft=yaml.ansible +--- +- name: Create Docker network for Postfix + docker_network: + name: postfix + +- name: Create Postfix volume directories + file: + name: "{{ services.postfix.volume }}/dkim" + owner: root + mode: u=rwx,g=rx,o=rx + state: directory + +- name: Deploy Postfix Docker container + docker_container: + name: postfix + image: boky/postfix:{{ services.postfix.version }} + restart_policy: always + env: + ALLOWED_SENDER_DOMAINS: "{{ sender_domains | join(' ') }}" + HOSTNAME: "{{ services.postfix.hostname }}" + DKIM_AUTOGENERATE: "true" + networks: + - name: postfix + volumes: + - "{{ services.postfix.volume }}/dkim:/etc/opendkim/keys:rw"