fleetops/Dockerfile
david kiania ff5945a85d feat: FleetOps analytics SPA (Caddy) — initial scaffold
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>
2026-06-10 13:00:31 +03:00

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