Files
Web-Page-Performance-Test/QUICKSTART.md
DeNNiiInc 307d7be63c chore: clean up project - remove temporary files and add quick setup guide
- Removed 18 temporary/test files (check_data.js, test_db_insert.js, etc.)
- Removed old deployment scripts and debug utilities
- Added setup.sh for one-command deployment
- Rewrote QUICKSTART.md with comprehensive 3-step setup guide
- Enhanced ecosystem.config.js with logging and restart config
- Project is now clean and deployment-ready
2025-12-28 23:12:10 +11:00

199 lines
4.4 KiB
Markdown

# Web Performance Test - Quick Start Guide
This guide will help you deploy the Web Performance Test application in minutes.
## 🚀 Quick Setup (3 Steps)
### 1. Clone and Install
```bash
git clone https://github.com/DeNNiiInc/Web-Page-Performance-Test.git
cd Web-Page-Performance-Test
npm install
```
### 2. Configure Database
Create your database configuration file:
```bash
cp lib/db-config.template.js lib/db-config.js
```
Edit `lib/db-config.js` with your PostgreSQL credentials:
```javascript
module.exports = {
host: 'YOUR_DATABASE_HOST', // e.g., 'localhost' or '172.16.69.219'
user: 'postgres', // Database username
password: 'YOUR_PASSWORD', // Database password
database: 'webperformance', // Database name
port: 5432, // Default PostgreSQL port
};
```
### 3. Initialize Database
Run the database initialization script:
```bash
node lib/db.js
```
This will create the required database table and indexes.
### 4. Start the Application
#### Development Mode:
```bash
npm start
```
#### Production Mode (with PM2):
```bash
npm install -g pm2
pm2 start ecosystem.config.js
pm2 save
pm2 startup # Follow the instructions to enable auto-start
```
The application will be available at `http://localhost:3000`
## 📋 Prerequisites
- **Node.js** v14 or higher
- **PostgreSQL** v12 or higher
- **Chrome/Chromium** (installed automatically with puppeteer)
## 🗄️ Database Setup
If you need to set up PostgreSQL from scratch:
### On Ubuntu/Debian:
```bash
sudo apt update
sudo apt install postgresql postgresql-contrib
sudo systemctl start postgresql
sudo systemctl enable postgresql
```
### Create Database:
```bash
sudo -u postgres psql
```
```sql
CREATE DATABASE webperformance;
ALTER USER postgres PASSWORD 'your_password_here';
\q
```
### Configure Remote Access (if needed):
Edit PostgreSQL configuration:
```bash
sudo nano /etc/postgresql/*/main/postgresql.conf
```
Add or uncomment:
```ini
listen_addresses = '*'
```
Edit access control:
```bash
sudo nano /etc/postgresql/*/main/pg_hba.conf
```
Add:
```
host all all 0.0.0.0/0 scram-sha-256
```
Restart PostgreSQL:
```bash
sudo systemctl restart postgresql
```
## 🔧 Configuration
### Environment Variables (Optional)
You can set these environment variables for additional configuration:
- `PORT` - Server port (default: 3000)
- `NODE_ENV` - Environment (development/production)
### PM2 Configuration
The `ecosystem.config.js` file contains PM2 configuration. You can customize:
- Instance name
- Number of instances
- Memory limits
- Log locations
## 📁 Project Structure
```
Web-Page-Performance-Test/
├── server.js # Express server
├── index.html # Main interface
├── waterfall.html # Network waterfall visualization
├── images.html # Filmstrip gallery
├── compare.html # Test comparison tool
├── lib/ # Core modules
│ ├── runner.js # Lighthouse test runner
│ ├── db.js # Database setup
│ └── db-config.js # Database credentials (not in git)
├── migrations/ # Database migrations
└── docs/ # Additional documentation
```
## 🐛 Troubleshooting
### Database Connection Issues
**Error: `connect ECONNREFUSED`**
- Verify PostgreSQL is running: `systemctl status postgresql`
- Check database credentials in `lib/db-config.js`
- Verify pg_hba.conf allows connection from your IP
**Error: `password authentication failed`**
- Reset PostgreSQL password:
```bash
sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'new_password';"
```
### Chrome/Puppeteer Issues
**Error: `Failed to launch chrome`**
- Install required dependencies:
```bash
sudo apt install -y chromium-browser chromium-chromedriver
```
### Port Already in Use
**Error: `EADDRINUSE: address already in use`**
- Change the port in `server.js` or:
```bash
PORT=3001 npm start
```
## 📚 Additional Documentation
- **Full Deployment Guide**: See `DEPLOYMENT.md`
- **Proxmox Deployment**: See `PROXMOX_DEPLOY_TEMPLATE.md`
- **API Documentation**: See `docs/API.md`
## 🔒 Security Notes
- Never commit `lib/db-config.js` to version control (it's in `.gitignore`)
- Use strong passwords for database access
- Consider restricting database access to specific IPs in production
- Keep dependencies updated: `npm audit fix`
## 📝 License
GPL v3 - See LICENSE file for details