DieselDepot-APP/README.md
SJCoetz d76e4fffd4 build: update next config, add dockerignore and fix UI button classes
- Update Next.js config to default to standalone build mode and add build mode documentation
- Add .dockerignore to minimize Docker build context size
- Fix missing "btn" base class on admin create user submit button
- Refactor delivery page filter buttons to use semantic segment classes with proper accessibility attributes
- Clean up old webpack hot update bundle files
- Update generated Next.js build manifest and cache files
2026-07-20 12:11:00 +02:00

2.7 KiB

Diesel Depot

Diesel depot & fleet management web/mobile app — Lumelela Depot + Fanie se plot Depot.

Stack: Next.js 14 (PWA) · PocketBase backend · Tailwind · TypeScript Dev port: 4002 (avoiding 3000/4001 used by sibling projects)

Quick start

# 1. Install
npm install

# 2. Configure
cp .env.local.example .env.local
#   → set NEXT_PUBLIC_POCKETBASE_URL
#   → set PB_ADMIN_TOKEN (a superuser auth token from your PB admin)

# 3. Create collections (idempotent — safe to re-run)
npm run pb:create

# 4. Seed initial data (Lumelela, Fanie se plot, owner user, starter truck)
npm run pb:seed

# 5. Run
npm run dev
# → open http://localhost:4002

Default owner login: owner@dieseldepot.local / changeme — change this on first login.

Collections (all prefixed dd_ to avoid clashing with other apps on the same PB)

Collection Type Notes
dd_depots base Lumelela, Fanie se plot, etc.
dd_trucks base Capacity + current balance + current km
dd_clients base Customer master + default_lat/lng for anomaly flag
dd_users auth Drivers, pump attendants, admins, owners
dd_delivery_notes base Meter readings, photo, signature, status, etc.

v1 scope

Foundation + delivery note capture. Defer to v2:

  • Internal transfers (depot ↔ truck load/empty log)
  • Sage invoice bridge (number/amount capture + status)
  • Evaporation/loss report
  • Location anomaly detection
  • Weekly km prompt
  • Offline PWA sync queue

PWA

Installable on Android/iOS home screen. Service worker is a stub — no offline cache yet. Pairs well with the camera APIs in the delivery-note form.

Self-host (Coolify)

The repo ships a multi-stage Dockerfile (standalone Next.js output) and a coolify.env template you can paste straight into Coolify's env panel.

In Coolify:

  1. Add a new Application resource, point it at this repo.
  2. Build pack: Dockerfile (not Nixpacks).
  3. Port: 3000 (Coolify will auto-detect from the EXPOSE).
  4. Open the Environment Variables tab and paste the contents of coolify.env. The only required one is NEXT_PUBLIC_POCKETBASE_URL — set it to the external https URL of your PocketBase service.
  5. Deploy. The first build will take a few minutes; subsequent deploys are fast thanks to the layer cache.

If you don't have PocketBase in Coolify yet, add it as a second service (any of the pocketbase/pocketbase image templates work) and point the Diesel Depot's NEXT_PUBLIC_POCKETBASE_URL at its public domain.