# 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 ```bash 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 ```bash docker build -t website-monitoring-backend . docker run -p 5000:5000 website-monitoring-backend ```