mirror of
https://github.com/DeNNiiInc/Web-Page-Performance-Test.git
synced 2026-04-17 20:05:58 +00:00
- Added Express server with Git info API endpoint - Created automated deployment scripts (systemd-based, not PM2) - Implemented 5-minute auto-sync with GitHub - Enhanced .gitignore with 200+ credential protection patterns - Added Git version badge to UI footer - Created comprehensive deployment documentation - Added TurnKey Nginx fix for default control panel issue - Included security verification tools All credentials protected and verified safe for deployment.
8.8 KiB
8.8 KiB
📦 Everything is Ready for Deployment!
✅ What I've Prepared for You
🎨 Application Files
- ✅
index.html- Main page with Git version badge - ✅
styles.css- Premium dark theme design system with version badge styling - ✅
script.js- Fetches and displays Git commit info - ✅
server.js- Express server with Git info API endpoint - ✅
package.json- Node.js dependencies configured
🚀 Deployment Automation
- ✅
deploy-local.ps1- RUN THIS from your Windows machine to deploy - ✅
deploy-server.sh- Runs on the server (uploaded automatically) - ✅
auto-sync.sh- Cron job script (syncs every 5 minutes)
🔐 Security & Configuration
- ✅
.gitignore- All credentials are protected from Git - ✅
deploy-config.TEMPLATE.json- Template for your credentials - ℹ️
deploy-config.json- YOU CREATE THIS (copy from template and fill in)
📚 Documentation
- ✅
README.md- Complete project documentation - ✅
DEPLOYMENT.md- Detailed deployment guide with architecture diagrams - ✅
QUICKSTART.md- Quick reference for deployment - ✅
CHECKLIST.md- Step-by-step checklist (fill this out!) - ✅
PROXMOX_DEPLOY_TEMPLATE.md- Reference template (already existed)
🎯 What YOU Need to Do
1️⃣ Gather Your Credentials
Open CHECKLIST.md and fill in:
- ☐ Proxmox Server IP address
- ☐ Root password
- ☐ GitHub username
- ☐ GitHub Personal Access Token (Create here)
2️⃣ Create Your Config File
Copy-Item deploy-config.TEMPLATE.json deploy-config.json
notepad deploy-config.json # Fill in your credentials
3️⃣ Deploy!
.\deploy-local.ps1
That's it! The script does everything else automatically.
🔄 How Auto-Sync Works
After deployment, your server will:
Every 5 minutes:
1. Check GitHub for new commits
2. If changes found:
- Pull latest code
- Install dependencies (if package.json changed)
- Restart the service
3. If no changes:
- Do nothing (efficient!)
You just code, commit, and push - the server updates itself!
🏗️ Architecture Overview
┌─────────────────────────────┐
│ Your Windows Computer │
│ │
│ 1. Run deploy-local.ps1 │
│ 2. Uploads scripts via │
│ SSH (plink) & SCP │
└──────────┬──────────────────┘
│
│ SSH Connection
│ Port 22
▼
┌──────────────────────────────────────────┐
│ Proxmox TurnKey Node.js Container │
│ │
│ ┌────────────────────────────────────┐ │
│ │ Nginx (Port 80) │ │
│ │ - Serves static files directly │ │
│ │ - Proxies /api to Node.js │ │
│ └────────┬───────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────────────────┐ │
│ │ Node.js Express (Port 3000) │ │
│ │ - Serves index.html │ │
│ │ - API: /api/git-info │ │
│ └────────┬───────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────────────────┐ │
│ │ Systemd Service │ │
│ │ - Auto-start on boot │ │
│ │ - Auto-restart on crash │ │
│ │ - Logging via journalctl │ │
│ └────────────────────────────────────┘ │
│ │
│ ┌────────────────────────────────────┐ │
│ │ Cron Job (*/5 * * * *) │ │
│ │ - Runs auto-sync.sh every 5 min │ │
│ │ - Checks GitHub for changes │ │
│ │ - Pulls and restarts if needed │ │
│ └────────────────────────────────────┘ │
│ │
└──────────┬───────────────────────────────┘
│
│ git pull (every 5 min)
▼
┌──────────────────────────────┐
│ GitHub Repository │
│ DeNNiiInc/ │
│ Web-Page-Performance-Test │
└──────────────────────────────┘
🛡️ Security Features
✅ Credentials Never Touch Git
deploy-config.jsonis in.gitignore- GitHub token is removed from server after clone
- Credentials only exist locally on your machine
✅ Systemd Over PM2
Based on your previous projects, I used Systemd instead of PM2:
- More reliable (native Linux service)
- Better logging
- Auto-restart built-in
- No extra daemon process
✅ Nginx Reverse Proxy
- Static files served directly (faster)
- Node.js only handles API requests
- Backend shielded from direct access
📊 Features Included
🎨 Frontend
- Modern glassmorphism design
- Dark theme with gradients
- Responsive (mobile-friendly)
- Git version badge in footer (shows commit ID and age)
⚙️ Backend
- Express.js server
- API endpoint:
/api/git-info - Returns current commit ID and age
🔄 DevOps
- One-command deployment
- Auto-sync every 5 minutes
- Systemd service management
- Nginx reverse proxy
- Comprehensive logging
📝 Next Steps
Step 1: Read the Checklist
Open CHECKLIST.md and fill in all required information.
Step 2: Create Config File
Copy-Item deploy-config.TEMPLATE.json deploy-config.json
# Edit with your credentials
Step 3: Deploy
.\deploy-local.ps1
Step 4: Verify
- Visit
http://YOUR_SERVER_IP - Check Git badge in footer
- Make a change, push to GitHub, wait 5 minutes, see it update!
🎓 Documentation Guide
- Start with
CHECKLIST.md- Fill out your credentials - For quick start →
QUICKSTART.md - For full details →
DEPLOYMENT.md - For project info →
README.md - Reference →
PROXMOX_DEPLOY_TEMPLATE.md
✨ Special Notes
Why Systemd Instead of PM2?
From your previous projects (Connect-5, Vendor Inventory), you found that:
- ✅ Systemd is more reliable
- ✅ Native to Linux (no extra software)
- ✅ Better logging with journalctl
- ✅ Boot persistence without configuration
- ❌ PM2 caused issues between projects
Auto-Sync Every 5 Minutes
- Checks GitHub without slowing down your server
- Only restarts if changes detected
- Logs everything to
/var/log/web-page-performance-test-autosync.log - Can be manually triggered:
./auto-sync.sh
Git Version Badge
- Shows current commit ID (short hash)
- Shows commit age (e.g., "2 hours ago")
- Auto-updates every 5 minutes
- Styled to match your design system
🎉 You're Ready to Deploy!
Everything is prepared and waiting for your credentials. When you have them ready:
- Open
CHECKLIST.md - Fill in your information
- Create
deploy-config.json - Run
.\deploy-local.ps1 - Enjoy your auto-deploying application! 🚀
📞 Files at a Glance
| File | Purpose | You Need to... |
|---|---|---|
CHECKLIST.md |
Credential worksheet | Fill this out first |
deploy-config.TEMPLATE.json |
Credential template | Copy to deploy-config.json |
deploy-config.json |
Your actual credentials | Create and fill in |
deploy-local.ps1 |
Deployment automation | Run this to deploy |
QUICKSTART.md |
Quick reference | Read when deploying |
DEPLOYMENT.md |
Full deployment guide | Read for details |
README.md |
Project overview | General reference |
| All other files | Application code | Just push to GitHub! |
I'm ready when you are! Just provide your credentials and we'll deploy! 🚀
Made with ❤️ using your deployment template and best practices from your previous projects.