infra/roles/postfix/tasks/main.yml
Jeremie Fraeys 6ea9c060bd
feat(postfix): configure Postmark SMTP relay for transactional email
- Change default relay port from 587 to 2525 (Postmark)
- Add Docker provider environment variables for API version compatibility
- Configure for Postmark server token authentication
2026-03-06 10:31:39 -05:00

54 lines
2.3 KiB
YAML

---
- name: Configure Postfix (send-only)
block:
- name: Read Postfix relay host
set_fact:
postfix_relayhost: "{{ POSTFIX_RELAYHOST | default(lookup('env', 'POSTFIX_RELAYHOST') | default('smtp.postmarkapp.com', true), true) }}"
postfix_relayhost_port: "{{ POSTFIX_RELAYHOST_PORT | default(lookup('env', 'POSTFIX_RELAYHOST_PORT') | default('2525', true), true) }}"
no_log: true
- name: Read Postfix relay host username
set_fact:
postfix_relayhost_username: "{{ POSTFIX_RELAYHOST_USERNAME | default(lookup('env', 'POSTFIX_RELAYHOST_USERNAME') | default('', true), true) }}"
no_log: true
- name: Read Postfix relay host password
set_fact:
postfix_relayhost_password: "{{ POSTFIX_RELAYHOST_PASSWORD | default(lookup('env', 'POSTFIX_RELAYHOST_PASSWORD') | default('', true), true) }}"
no_log: true
- name: Fail if Postfix relay host username/password pairing is invalid
fail:
msg: "POSTFIX_RELAYHOST_USERNAME and POSTFIX_RELAYHOST_PASSWORD must both be set, or both be empty"
when: (postfix_relayhost_username | length == 0) != (postfix_relayhost_password | length == 0)
- name: Read Postfix allowed sender domains
set_fact:
postfix_allowed_sender_domains: "{{ POSTFIX_ALLOWED_SENDER_DOMAINS | default(lookup('env', 'POSTFIX_ALLOWED_SENDER_DOMAINS') | default('', true), true) }}"
no_log: true
- name: Read Postfix allow empty sender domains
set_fact:
postfix_allow_empty_sender_domains: "{{ (POSTFIX_ALLOW_EMPTY_SENDER_DOMAINS | default(lookup('env', 'POSTFIX_ALLOW_EMPTY_SENDER_DOMAINS') | default('true', true), true)) | bool }}"
no_log: true
- name: Read Postfix SMTP TLS security level
set_fact:
postfix_smtp_tls_security_level: "{{ POSTFIX_SMTP_TLS_SECURITY_LEVEL | default(lookup('env', 'POSTFIX_SMTP_TLS_SECURITY_LEVEL') | default('may', true), true) }}"
no_log: true
- name: Create Postfix directory
file:
path: /opt/postfix
state: directory
- name: Copy Docker Compose file for Postfix
template:
src: docker-compose.yml.j2
dest: /opt/postfix/docker-compose.yml
- name: Deploy Postfix
command: docker compose up -d
args:
chdir: /opt/postfix