4.5 KiB
4.5 KiB
Quick Setup Guide
🚀 Quick Start (5 minutes)
Step 1: Start Database Services
# In project root
docker-compose up -d
This starts PostgreSQL and Redis in Docker containers.
Step 2: Setup Backend
cd backend
npm install
npm run migrate # Create database tables
npm run dev # Start backend server
Backend runs on http://localhost:3001
Step 3: Setup Frontend
cd frontend
npm install
npm run dev # Start frontend server
Frontend runs on http://localhost:3000
Step 4: Create Account
- Open http://localhost:3000
- Click "Sign up"
- Enter email and password (min 8 chars, must include uppercase, lowercase, number)
- You're ready to go!
✅ Verify Installation
Check Backend Health
curl http://localhost:3001/health
Should return:
{
"status": "ok",
"timestamp": "...",
"uptime": 123
}
Check Database
docker exec -it website-monitor-postgres psql -U admin -d website_monitor -c "\dt"
Should show tables: users, monitors, snapshots, alerts
Check Redis
docker exec -it website-monitor-redis redis-cli ping
Should return: PONG
🐛 Common Issues
Port Already in Use
If port 3000 or 3001 is busy:
# Backend: Change PORT in backend/.env
PORT=3002
# Frontend: Run on different port
npm run dev -- -p 3001
Database Connection Failed
# Check if PostgreSQL is running
docker ps
# Restart if needed
docker-compose restart postgres
# Check logs
docker logs website-monitor-postgres
Cannot Create Account
- Password must be 8+ characters
- Must include uppercase, lowercase, and number
- Example:
Password123
📦 What Was Created
website-monitor/
├── backend/ # Express API server
│ ├── src/
│ │ ├── routes/ # API endpoints
│ │ ├── services/ # Business logic
│ │ ├── db/ # Database layer
│ │ ├── middleware/ # Auth middleware
│ │ └── types/ # TypeScript types
│ ├── package.json
│ └── .env
├── frontend/ # Next.js web app
│ ├── app/
│ │ ├── dashboard/ # Main dashboard
│ │ ├── login/ # Login page
│ │ ├── register/ # Register page
│ │ └── monitors/ # Monitor history
│ ├── lib/ # API client & auth
│ ├── package.json
│ └── .env.local
├── docker-compose.yml # Database services
└── README.md # Full documentation
🎯 Next Steps
-
Create First Monitor
- Go to Dashboard
- Click "+ Add Monitor"
- Enter a URL (e.g., https://example.com)
- Select check frequency
- Click "Create Monitor"
-
Trigger Manual Check
- Click "Check Now" on any monitor
- Wait a few seconds
- Click "History" to see results
-
View Changes
- When a page changes, you'll see it in History
- Changed entries are highlighted in blue
- View details for each check
🔧 Configuration
Email Alerts (Optional)
To enable email alerts, configure SMTP in backend/.env:
SMTP_HOST=smtp.sendgrid.net
SMTP_PORT=587
SMTP_USER=apikey
SMTP_PASS=your-sendgrid-api-key
EMAIL_FROM=alerts@yourdomain.com
For development, use Mailtrap.io (free).
Adjust Plan Limits
Edit backend/.env:
MAX_MONITORS_FREE=5
MAX_MONITORS_PRO=50
MIN_FREQUENCY_FREE=60 # minutes
MIN_FREQUENCY_PRO=5 # minutes
📖 Learn More
- See
README.mdfor complete documentation - Check
backend/src/routes/for API endpoints - Look at
frontend/app/for page components
💡 Tips
- Test with Simple Sites: Start with simple, fast-loading websites
- Adjust Frequency: Use longer intervals (60+ min) for testing
- Check Logs: Watch terminal output for errors
- Database GUI: Use TablePlus or pgAdmin to inspect database
🆘 Get Help
If you encounter issues:
- Check logs in terminal
- Verify all services are running
- Review error messages
- Check environment variables
🎉 You're All Set!
You now have a fully functional website monitoring system. Start by creating your first monitor and watch it track changes!