This project now runs as a Node.js app with:
- Public website pages (
index.html,booking.html,contact.html,fleet.html,inspections.html) - Submission API for booking/contact forms
- SQLite storage
- Admin CRM dashboard (
/admin) with login, filters, status workflow, notes, and CSV export
- Node.js + Express
- SQLite (
better-sqlite3) - Session auth (
express-session+connect-sqlite3) - Validation (
zod) - Notifications (
nodemailervia SMTP)
- Install dependencies:
npm ci- Create env file:
cp .env.example .envSet at minimum:
SESSION_SECRETADMIN_EMAILADMIN_PASSWORD(orADMIN_PASSWORD_HASH)
- Run migrations + seed admin:
npm run migrate- Start server:
npm startApp runs at http://127.0.0.1:5173 by default.
- Login page:
http://127.0.0.1:5173/admin/login.html - Protected dashboard:
http://127.0.0.1:5173/admin
POST /api/submissions/bookingPOST /api/submissions/contact
POST /api/admin/loginGET /api/admin/sessionPOST /api/admin/logout(CSRF required)GET /api/admin/submissionsGET /api/admin/submissions/:idPATCH /api/admin/submissions/:id(CSRF required)GET /api/admin/submissions/export.csv
- Install Node LTS and Nginx.
- Configure
.env. - Run:
npm ci
npm run migrate
npm start- Put behind Nginx reverse proxy + TLS.
- Configure SMTP env vars for notifications.
- Schedule daily backup of
data/*.sqlite.