Files
RIT-nexus/EMAIL_AUTOMATION_GUIDE.md
Shanmuga Krishnan S M 8cc1580dfa
Some checks failed
Deploy RIT Freshers Hub to VPS / Deploy to Live VPS (push) Has been cancelled
fix(admin): make /admin a top-level route and add Maven compile to deploy.sh
2026-08-07 14:08:34 +05:30

4.0 KiB

📧 Git Push & Deployment Email Notification Automation Guide

This guide explains how the automated email reporting system for Freshers-Hub works, including configuration, scripts, and integration steps for VPS & Gitea CI/CD pipelines.


🛠️ Overview of Included Scripts

Two core scripts were added to the repository under the scripts/ directory:

  1. scripts/send_git_email.py: Python script using smtplib to send rich HTML formatted deployment reports to dorutoslayer@gmail.com via Gmail SMTP.
  2. scripts/post-receive.sh: Shell script template for Git post-receive hook execution.

🎯 Verification Status

  • ✅ Multi-threaded webhook receiver active on port 9000
  • ✅ Automatic HTML email reports configured for dorutoslayer@gmail.com

⚙️ Configuration Details

Parameter Value
Sender Email krishnaowoxd@gmail.com
App Password qkwylwtcsnlrpree (no spaces)
Recipient Email dorutoslayer@gmail.com
SMTP Host / Port smtp.gmail.com:587 (TLS)

🚀 How to Enable Automated Email Reports

If your VPS uses the Webhook endpoint (http://129.121.126.66:9000/hooks/deploy), update /var/www/freshers-hub/deploy.sh on your VPS to execute asynchronously in the background. This ensures the Webhook returns an instant 200 OK response to Gitea in 0.1 seconds, preventing timeout errors!

#!/bin/bash
# /var/www/freshers-hub/deploy.sh

(
    cd /var/www/freshers-hub
    
    # 1. Pull latest code from main
    git pull origin main
    
    # 2. Rebuild Spring Boot Java Backend & Vite Frontend
    cd backend && ./mvnw clean package -DskipTests && cd ..
    npm run build
    
    # 3. Restart Microservices
    systemctl restart springboot chatbot telegram-bot nginx
    
    # 3. 📧 Send Email Report Notification (sent AFTER build & restart finish!)
    python3 /var/www/freshers-hub/scripts/send_git_email.py \
        "$(git rev-parse --abbrev-ref HEAD)" \
        "$(git log -1 --format='%an <%ae>')" \
        "$(git log -1 --format='%h')" \
        "$(git log -1 --format='%cd' --date=local)" \
        "$(git log -1 --format='%B')" \
        "$(git diff-tree --no-commit-id --name-status -r HEAD | head -n 15)" \
        "SUCCESS (LIVE ONLINE)"

) >> /var/log/deploy.log 2>&1 &

echo '{"status": "ok", "message": "Deployment triggered in background"}'

Method B: Configure Gitea Git Hook

If using Gitea custom hooks:

  1. Go to your Gitea repository page: https://git.rit-services.in/ShanmugaKrishnanSM/RIT-nexus.
  2. Navigate to Settings -> Git Hooks.
  3. Edit post-receive (or custom_hooks/post-receive).
  4. Paste the following hook script:
#!/bin/bash
/usr/bin/python3 /var/www/freshers-hub/scripts/send_git_email.py \
    "main" \
    "$(git log -1 --format='%an <%ae>')" \
    "$(git log -1 --format='%h')" \
    "$(git log -1 --format='%cd' --date=local)" \
    "$(git log -1 --format='%B')" \
    "$(git diff-tree --no-commit-id --name-status -r HEAD | head -n 15)"
  1. Save changes.

🧪 Manual Verification Command

To verify that email delivery works from your VPS terminal:

python3 /var/www/freshers-hub/scripts/send_git_email.py \
    "main" \
    "Test Author <krishnaowoxd@gmail.com>" \
    "cd30366" \
    "Fri Aug 7 11:55:00 2026" \
    "Testing email notification system" \
    "M src/components/BusRouteMap/BusRouteMap.tsx"

📊 Sample HTML Email Report Format

When triggered, the recipient receives a formatted HTML email containing:

  • Branch: main
  • Author: Commit Author Name & Email
  • Commit Hash: Short 7-character hash
  • Timestamp: Date & Time of push
  • Commit Message: Full commit message text
  • Changed Files: List of top modified files (M, A, D)