Files
cloudlense/website-monitoring-backend
Dennis 0d2aef07bc feat: implement real uptime monitoring, alerts, admin dashboard, billing & usage tracking
- 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>
2026-03-06 00:51:54 +01:00
..

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