Files
computer-playbook/roles/sys-ctl-hlth-msmtp
Kevin Veen-Birkenbach 8e4ee723d7 Make mail stack optional for Infinito.Nexus deployments without Mailu (e.g. Raspberry Pi / robots)
Refactored mail-related roles to support running Infinito.Nexus on nodes without a dedicated mail server:
- Introduced sys-svc-mail as central mail orchestration role.
- Split msmtp handling into sys-svc-mail-msmtp.
- Added sys-svc-mail-smtp to provide a localhost-only Postfix relay when Mailu is not present.
- Updated alert/health roles to use the new mail orchestration.
- Avoid installing postfix inside containers via IS_CONTAINER guard.
- Adjusted WordPress role to use the new msmtp template path.

This allows lightweight deployments (e.g. Raspberry Pi, robots, edge nodes) to send mail via localhost without requiring a full Mailu stack.

ChatGPT discussion: https://chatgpt.com/share/6931edf1-cb98-800f-9e3c-a62d69ccb223
2025-12-04 21:24:53 +01:00
..

sys-ctl-hlth-msmtp

Description

This Ansible role sends periodic health check emails using msmtp to verify that your mail transport agent is operational. It deploys a simple script and hooks it into a systemd service and timer, with failure notifications sent via Telegram.

Overview

Optimized for Archlinux, this role creates the required directory structure, installs and configures the sys-ctl-hlth-check script, and integrates with the sys-ctl-alm-telegram role. It uses the sys-timer role to schedule regular checks based on your customizable OnCalendar setting.

Purpose

The sys-ctl-hlth-msmtp role ensures that your mail transport system stays available by sending a test email at defined intervals. If the email fails, a Telegram alert is triggered, allowing you to detect and address issues before they impact users.

Features

  • Directory & Script Deployment: Sets up sys-ctl-hlth-msmtp/ and deploys a templated Bash script to send test emails via msmtp.
  • Systemd Service & Timer: Provides .service and .timer units to run the check and schedule it automatically.
  • Failure Notifications: Leverages sys-ctl-alm-telegram to push alerts when the script exits with an error.
  • Configurable Schedule: Define your desired check frequency using the on_calendar_health_msmtp variable.
  • Email Destination: Specify the recipient via the users.administrator.email variable.