Fleet operations analytics (fuel · utilisation · distance · driver behaviour),
sibling to FleetNow. Self-contained src/index.html (inline CSS/JS + Chart.js CDN)
reusing FleetNow's warm-dark ops palette + header shell for a familiar look.
Reads dashboard_api /analytics/* (fleet-summary, utilisation, driver-behaviour,
fuel, filters). Panels: KPI strip, distance/idle daily-trend chart, per-vehicle
table, driver leaderboard, fuel (data-gated).
Served by Caddy on :80 (Traefik terminates TLS). Per-env API base injected at
runtime via Caddy `templates` -> /env.js ({{env "API_BASE"}}); falls back to the
staging API. Dockerfile runs `caddy validate` at build.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
16 lines
617 B
Docker
16 lines
617 B
Docker
# FleetOps — static analytics SPA served by Caddy.
|
|
# Coolify auto-detects this Dockerfile; set the app port to 80 and attach the
|
|
# domain (fleetops.fivetitude.com staging / fleetops.rahamafresh.com prod) in
|
|
# the Coolify UI. Set the API_BASE env var per app for runtime API-base injection.
|
|
FROM caddy:2.8-alpine
|
|
|
|
COPY Caddyfile /etc/caddy/Caddyfile
|
|
COPY src/ /srv/
|
|
|
|
# Fail the build early on a malformed Caddyfile.
|
|
RUN caddy validate --config /etc/caddy/Caddyfile
|
|
|
|
EXPOSE 80
|
|
|
|
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
|
|
CMD wget -qO- http://localhost/healthz >/dev/null 2>&1 || exit 1
|