源文件:14-deploy-notifications.md

# 14. Deploy Notifications

This document records the deploy notification pipeline for the Node CI/CD toolkit.

# What it does

Notifications are sent for:

  • direct manual info messages
  • successful signed webhook deploys
  • failed signed webhook deploys

# Live files

  • notifier: /usr/local/bin/node-cicd-notify
  • notifier config: /etc/node-cicd-notify.env
  • webhook receiver: /usr/local/bin/node-cicd-webhookd

# Channel model

Supported channels are:

  • telegram
  • email

Current live default on this VPS:

  • CHANNELS='telegram'
  • Telegram sent directly through the Telegram Bot API
  • Email disabled by default

To enable email later, change for example:


CHANNELS='telegram,email'


EMAIL_ENABLED='1'


EMAIL_TO='ops@example.com'


EMAIL_FROM='node-cicd@example.com'


SENDMAIL_BIN='/usr/sbin/sendmail'


# Message shape

Each message includes structured fields such as:

  • status
  • domain
  • source
  • event
  • ref
  • step
  • release
  • time

And it can append a details block from a log file.

# Verified behavior

This was actually tested on this VPS by:

  1. sending an INFO notification for node.v4.sohophp.app
  2. sending a SUCCESS notification after webhook deploy to release 20260602171950
  3. sending a FAILURE notification when webhook deploy used repo /srv/git/does-not-exist
  4. verifying Telegram delivery result in webhook JSON output

# Example command


sudo node-cicd-notify \


  --status success \


  --domain app.example.com \


  --source webhook \


  --event push \


  --ref refs/heads/main \


  --step deploy \


  --release /var/www/node22/app.example.com/releases/20260602171950


# Secret handling

  • keep real Telegram bot tokens only in /etc/node-cicd-notify.env
  • keep docs/examples on placeholder values only
  • do not publish real chat IDs or tokens in toolkit docs