new-site/infra/ansible/roles
justin 4dc5690666 infra: codify the email-campaign pipeline in Ansible (new mail-pipeline role)
The entire outbound campaign pipeline lived ONLY on the host and was never in
IaC -- a fresh rebuild would have silently shipped NO campaigns, NO IP warmup/
ramp, and NO bounce processing. New mail-pipeline role + deploy-mail-pipeline.yml
playbook deploy it from the canonical repo copies:

  cron.d (infra/cron/):
    - pw-trucking-campaign-builder, pw-ifta-campaign, pw-ucr-campaign
    - pw-hc-campaign, pw-hc-nppes, pw-hc-refresh
    - pw-mta-warmup, pw-listmonk-rampcap, pw-hc-rampcap
    - pw-ip-rehab, pw-warmup-tg-alert
  helper scripts (-> /usr/local/bin):
    - pw-mta-warmup, pw-listmonk-rampcap, pw-hc-rampcap, pw-warmup-tg-alert
    - postfix-bounce-notify.sh, postfix-hc-bounce-notify.sh, listmonk-bounce-sync.py
  systemd services:
    - pw-bounce-watcher.service (was missing from repo), pw-hc-bounce-watcher.service

Also creates the deploy-owned {{project_dir}}/logs dir (deploy can't write
/var/log, so a missing dir made cron redirects fail). Added the 6 cron.d files
that existed only on the host, the trucking bounce-watcher unit, and synced
infra/cron/pw-hc-refresh to the live version (revalidation download + enrich
steps). Role wired into site.yml after the mail (OpenDKIM) role.

Part of the email-deliverability incident hardening.
2026-06-17 20:26:01 -05:00
..
app chore(env): scaffold ISA_SC_DMS_USER/PASS for SC PSC MyDMS e-file portal 2026-06-16 08:19:17 -05:00
backup Fix flagged items: CRTC email submission, BITS todo, selector docs, stale plans 2026-05-04 11:33:45 -05:00
common Add security-updates Ansible role for automated patching 2026-04-30 01:24:57 -05:00
docker Initial commit — Performance West telecom compliance platform 2026-04-27 06:54:22 -05:00
erpnext Initial commit — Performance West telecom compliance platform 2026-04-27 06:54:22 -05:00
mail mail: add logrotate for Postfix mail.log (postlogd copytruncate) 2026-06-17 19:47:13 -05:00
mail-pipeline infra: codify the email-campaign pipeline in Ansible (new mail-pipeline role) 2026-06-17 20:26:01 -05:00
minio Initial commit — Performance West telecom compliance platform 2026-04-27 06:54:22 -05:00
monitoring Add Prometheus + Grafana + Alertmanager monitoring stack 2026-05-01 02:08:39 -05:00
nginx nginx: stop blocking /admin (bot-scan rule matched our own dashboard) 2026-06-16 00:05:54 -05:00
postgresql Initial commit — Performance West telecom compliance platform 2026-04-27 06:54:22 -05:00
security-updates Add security-updates Ansible role for automated patching 2026-04-30 01:24:57 -05:00
sftpgo Initial commit — Performance West telecom compliance platform 2026-04-27 06:54:22 -05:00
shkeeper Initial commit — Performance West telecom compliance platform 2026-04-27 06:54:22 -05:00
site Initial commit — Performance West telecom compliance platform 2026-04-27 06:54:22 -05:00
worker-crons docs(crons): note IRP invoice poller now also handles intrastate [PW-ISA] replies 2026-06-16 07:59:38 -05:00
workers Initial commit — Performance West telecom compliance platform 2026-04-27 06:54:22 -05:00