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

75 lines
2.7 KiB
Markdown

# 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
```bash
# 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`](./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.