Use this when deployment does not work. Check these in order.
| Area | What to Check |
|---|---|
| Branch | Did you push to the branch that is supposed to deploy? |
| CI | Did the CI workflow run, and did it pass? |
| CD Trigger | Did the CD workflow actually start after CI? |
| Secrets | Are DEPLOY_HOST, DEPLOY_USER, DEPLOY_PORT, DEPLOY_PATH, and DEPLOY_SSH_KEY all set correctly in GitHub? |
| SSH Access | Can the deploy user SSH into the server with the expected key? |
| Server Path | Does the deployed repo actually exist at DEPLOY_PATH? |
| Repo State | On the server, does git status look clean and is the correct branch checked out? |
| Pull | Does git pull work manually in the deployed repo? |
| Dependencies | Did npm install run successfully in root, client, and server where needed? |
| Frontend Build | Does cd client && npm run build work manually on the server? |
| Port | Is the app configured to run on the expected 41xx port? |
| PM2 | Does pm2 list show the expected process name? |
| Restart | Does pm2 restart <name> work manually? |
| Live App | After deployment, does http://10.192.145.179:41xx actually show the new change? |
| Cache | If the deployment succeeded but the page looks old, did you hard refresh the browser? |
Fast Manual Debug Path
If GitHub says deployment failed, log into the server and try these by hand:
cd /path/to/deployed/repo git status git pull cd client && npm install && npm run build cd ../server && npm install pm2 restart your-process-name pm2 list
Four Common Failure Categories
1. SSH problem
Symptoms:
- cannot connect
- permission denied
- host verification failed
Check:
- SSH key
- username
- host
- port
authorized_keys
2. Repo problem
Symptoms:
git pullfails- wrong branch
- detached head
- local changes blocking pull
Check:
- correct branch
- clean working tree
- correct remote
3. Build problem
Symptoms:
- frontend build fails
- missing dependency
- code works locally but not on server
Check:
- install steps
- environment assumptions
- exact error in build log
4. Process problem
Symptoms:
- deployment runs but site does not update
- backend is not serving
- PM2 restart fails
Check:
- PM2 process name
- app port
- PM2 logs
- whether Express is serving the built frontend
One-line Reminder
If CD fails, find out whether the problem is SSH, repo state, build, or process restart.
