Fleet-Scheduler

OMEXOM Vehicle Install Booking Dashboard Deployment

This dashboard is a live Node.js application. It uses server-side routes for CSV upload, booking storage, reminder scheduling, email confirmation, and address search.

Use:

This keeps the current dashboard operational without rewriting the backend.

1. Push To GitHub

Create a new private GitHub repository, then from this folder run:

git init
git add .
git commit -m "Initial OMEXOM vehicle booking dashboard"
git branch -M main
git remote add origin https://github.com/YOUR-ACCOUNT/YOUR-REPO.git
git push -u origin main

Keep the repository private because customer vehicle, driver, and site data may be present.

2. Host The Node App

On the host machine:

git clone https://github.com/YOUR-ACCOUNT/YOUR-REPO.git
cd YOUR-REPO
npm install
npm start

The app listens on:

http://localhost:3600

Use a process manager such as PM2 or the host platform’s service runner so the app restarts if the machine reboots.

3. Add Cloudflare Tunnel

Install cloudflared on the host, authenticate it, and create a tunnel:

cloudflared tunnel login
cloudflared tunnel create omexom-booking-dashboard
cloudflared tunnel route dns omexom-booking-dashboard booking.yourdomain.co.nz

Create a cloudflared config similar to:

tunnel: omexom-booking-dashboard
credentials-file: /path/to/tunnel-credentials.json

ingress:
  - hostname: booking.yourdomain.co.nz
    service: http://localhost:3600
  - service: http_status:404

Then run:

cloudflared tunnel run omexom-booking-dashboard

4. Protect With Cloudflare Zero Trust Access

In Cloudflare Zero Trust:

  1. Go to Settings > Authentication.
  2. Enable One-time PIN.
  3. Go to Access > Applications.
  4. Add a Self-hosted application.
  5. Set the application domain to booking.yourdomain.co.nz.
  6. Create an Access policy:
    • Action: Allow
    • Include: Emails or Email domain
    • Add your email and customer-approved emails.
  7. Set session duration to suit the rollout, for example 8 hours or 24 hours.

When users visit the dashboard, Cloudflare will ask for their email address and send a one-time PIN before allowing access.

5. Production Notes