0d2aef07bc
- Uptime service: real HTTP HEAD checks with response time tracking - Alert engine: evaluates scan results, auto-resolves recovered alerts - Notifications: Resend email + webhook delivery - Admin dashboard: system stats, user CRUD, org management (role-protected) - Billing: tier limits (free/starter/pro/enterprise), usage tracking API - Competitor analysis: real Lighthouse comparison + response time - Tests: 11 backend + 11 frontend = 22 total tests passing - Database: added competitor_metrics, alert_configurations tables Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Website Monitoring Backend
Express.js API server that runs Google Lighthouse audits on websites and streams real-time progress via Server-Sent Events.
Tech Stack
- Runtime: Node.js 18+
- Framework: Express.js
- Language: TypeScript
- Auditing: Google Lighthouse + Chrome Headless
- Database: PostgreSQL (via
pg)
Quick Start
cp .env.example .env
npm install
npm run build
npm start
Scripts
| Script | Description |
|---|---|
npm run build |
Compile TypeScript to dist/ |
npm start |
Run the production server |
npm run dev |
Watch mode for development |
npm test |
Run Jest tests |
npm run test:coverage |
Run tests with coverage report |
npm run lint |
Run ESLint |
npm run format |
Format code with Prettier |
API Endpoints
| Method | Path | Description |
|---|---|---|
GET |
/ |
API info |
GET |
/health |
Health check |
POST |
/api/lighthouse |
Start Lighthouse audit (body: { "url": "https://example.com" }) |
GET |
/api/lighthouse/status/:id |
SSE stream for audit progress |
Environment Variables
| Variable | Default | Description |
|---|---|---|
PORT |
5000 |
Server port |
DATABASE_URL |
— | PostgreSQL connection string |
CORS_ORIGIN |
* |
Allowed CORS origin |
CHROME_PATH |
— | Path to Chrome binary (Docker) |
Docker
docker build -t website-monitoring-backend .
docker run -p 5000:5000 website-monitoring-backend