Files
Checkmate/README.md
T
2025-11-21 23:44:20 +00:00

51 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Checkmate
A full‑stack uptime and infrastructure monitoring app. The repository contains an Express/TypeScript API and a React/TypeScript client.
## Project Structure
- `server/` – Node.js API (TypeScript, ESM)
- Source: `server/src`
- Routes mounted under `/api/v1/*` via `server/src/init/routes.ts`
- Tests: `server/tests`
- Build output: `server/dist`
- `client/` – React + TypeScript (Vite)
- Source: `client/src`
- Public assets: `client/public`
## Key Features
- JWT authentication and permission checks (team/org).
- Monitors API: create, list (with sorting/pagination), get checks, toggle pause, update, delete.
- Import/Export monitors (`GET /api/v1/monitors/export`, `POST /api/v1/monitors/import`).
- Notification channels and diagnostics endpoints.
- System settings (SMTP) with env‑first email transport fallback to DB settings.
## Getting Started
1. Prerequisites: Node 18+, MongoDB
2. Environment
- Server: create `server/.env` with at least:
- `MONGODB_URI=mongodb://localhost:27017/saas`
- `JWT_SECRET=replace_me`
- `ORIGIN=http://localhost:5173`
- Optional SMTP: `SMTP_HOST`, `SMTP_PORT`, `SMTP_USER`, `SMTP_PASS`
3. Install
- `cd server && npm ci`
- `cd ../client && npm ci`
4. Run
- API: `cd server && npm run dev` (listens on `http://localhost:52345`)
- Client: `cd client && npm run dev` (Vite dev server)
## Scripts
- Server
- `npm run dev` – Start API in watch mode
- `npm run build` – Type‑check and compile (tsc + tsc‑alias)
- `npm test` / `npm run test:coverage` – Jest tests and coverage
- Client
- `npm run dev` – Start Vite dev server
- `npm run build` – Type‑check and build
- `npm run preview` – Preview production build
## Notes
- The API expects valid JWTs on most routes; see `server/src/routes` for middleware usage.
- Mongo connection retries are handled in `server/src/db/MongoDB.ts`.
- Email transport prioritizes env config; if unset, it uses values from system settings.