mirror of
https://github.com/DeNNiiInc/Connect-5.git
synced 2026-04-18 00:56:00 +00:00
- Create post-merge git hook for auto service restart - Add setup-auto-deploy.sh for easy installation - Hook detects PM2, systemd, or manual process management - Automatically runs npm install if package.json changes - Eliminates need to manually run deploy.sh after updates
109 lines
3.5 KiB
Plaintext
109 lines
3.5 KiB
Plaintext
===============================================================================
|
|
AUTO-DEPLOY SETUP - Fix Database Disconnection After Git Pull
|
|
===============================================================================
|
|
|
|
PROBLEM YOU'RE EXPERIENCING:
|
|
- Git auto-pulls new code to production
|
|
- Database stops connecting
|
|
- You have to manually run deploy.sh to fix it
|
|
|
|
SOLUTION:
|
|
Automatic service restart after every git pull!
|
|
|
|
===============================================================================
|
|
INSTALLATION (Run Once on Production Server)
|
|
===============================================================================
|
|
|
|
SSH into your production server and navigate to Connect-5 directory, then run:
|
|
|
|
bash setup-auto-deploy.sh
|
|
|
|
That's it! The script will:
|
|
✅ Install a git post-merge hook
|
|
✅ Detect your service manager (PM2/systemd/manual)
|
|
✅ Configure automatic restart after git pull
|
|
|
|
===============================================================================
|
|
HOW IT WORKS
|
|
===============================================================================
|
|
|
|
After installation, every time git pulls new code:
|
|
|
|
1. Git auto-pull happens (your existing automation)
|
|
2. Git triggers the post-merge hook automatically
|
|
3. Hook checks if package.json changed → runs npm install if needed
|
|
4. Hook restarts the Node.js service automatically
|
|
5. Database reconnects immediately
|
|
6. No manual intervention needed!
|
|
|
|
===============================================================================
|
|
WHAT'S INCLUDED
|
|
===============================================================================
|
|
|
|
📁 git-hooks/post-merge
|
|
- The hook script that runs after git pull
|
|
- Handles: npm install + service restart
|
|
- Works with: PM2, systemd, or manual process restart
|
|
|
|
📜 setup-auto-deploy.sh
|
|
- One-time setup script
|
|
- Copies hook to .git/hooks/
|
|
- Makes it executable
|
|
- Tests which service manager you're using
|
|
|
|
===============================================================================
|
|
QUICK SETUP (Copy/Paste This)
|
|
===============================================================================
|
|
|
|
On your production server:
|
|
|
|
cd /path/to/Connect-5
|
|
bash setup-auto-deploy.sh
|
|
|
|
Answer "y" when asked to test the hook.
|
|
|
|
===============================================================================
|
|
VERIFICATION
|
|
===============================================================================
|
|
|
|
After setup, test it:
|
|
|
|
1. Make a small change to README.md on your local machine
|
|
2. Git push from local
|
|
3. Wait for server to auto-pull (your existing setup)
|
|
4. SSH into server and check:
|
|
|
|
# Check if service restarted
|
|
pm2 logs connect5
|
|
# OR
|
|
sudo systemctl status connect5
|
|
# OR
|
|
tail -f server.log
|
|
|
|
5. You should see:
|
|
"🔄 Git Pull Detected - Running Auto-Deploy"
|
|
"✅ Auto-Deploy Complete!"
|
|
|
|
===============================================================================
|
|
NO MORE MANUAL DEPLOYS!
|
|
===============================================================================
|
|
|
|
Before: Git pulls → Database disconnects → You run deploy.sh manually
|
|
After: Git pulls → Hook runs → Service restarts → Database reconnects ✅
|
|
|
|
You'll never need to run deploy.sh manually again for database connection issues!
|
|
|
|
===============================================================================
|
|
ROLLBACK (If Needed)
|
|
===============================================================================
|
|
|
|
To disable auto-deploy:
|
|
|
|
rm .git/hooks/post-merge
|
|
|
|
To re-enable:
|
|
|
|
bash setup-auto-deploy.sh
|
|
|
|
===============================================================================
|