Files
Dennis 50e25e3ee8 refactor: flatten monorepo structure to backend/ frontend/ devops/
Rename subdirectories for a cleaner single-repo layout:
- website-monitoring-backend/  → backend/
- website-monitoring-frontend/ → frontend/
- website-monitoring-devops/   → devops/

Update all references in package.json scripts, CI workflows,
docker-compose, pre-commit hooks, and documentation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-07 00:25:29 +01:00

1.5 KiB

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