2026-05-22 21:53:42 +00:00
|
|
|
# Postgres
|
|
|
|
|
POSTGRES_DB=fleet
|
|
|
|
|
POSTGRES_USER=fleet
|
|
|
|
|
POSTGRES_PASSWORD=change-me
|
|
|
|
|
|
|
|
|
|
# App connection (via pgbouncer in prod, direct in dev is also fine)
|
|
|
|
|
DATABASE_URL=postgresql://fleet:change-me@pgbouncer:6432/fleet
|
|
|
|
|
|
|
|
|
|
# Auth
|
|
|
|
|
JWT_SECRET=replace-with-64-bytes-of-random
|
|
|
|
|
JWT_ACCESS_TTL_MIN=15
|
|
|
|
|
JWT_REFRESH_TTL_DAYS=30
|
|
|
|
|
|
|
|
|
|
# Tracksolid push (shared token Tracksolid POSTs in form body)
|
|
|
|
|
TRACKSOLID_PUSH_TOKEN=set-from-tracksolid-console
|
|
|
|
|
|
|
|
|
|
# Tracksolid polled API
|
|
|
|
|
TRACKSOLID_API_BASE_URL=https://eu-open.tracksolidpro.com/route/rest
|
2026-05-23 05:59:27 +00:00
|
|
|
TRACKSOLID_APP_KEY=
|
|
|
|
|
TRACKSOLID_APP_SECRET=
|
|
|
|
|
TRACKSOLID_USER_ID=
|
|
|
|
|
TRACKSOLID_PWD_MD5=
|
|
|
|
|
TRACKSOLID_TARGET_ACCOUNT=
|
2026-05-23 06:29:04 +00:00
|
|
|
# Comma-separated list of subaccounts; takes precedence over TARGET_ACCOUNT.
|
|
|
|
|
# Example: TRACKSOLID_TARGETS=Fireside Communications,Customer-A,Customer-B
|
|
|
|
|
TRACKSOLID_TARGETS=
|
2026-05-23 05:59:27 +00:00
|
|
|
TRACKSOLID_TOKEN_TTL_SEC=7200
|
|
|
|
|
TRACKSOLID_POLL_INTERVAL_SEC=60
|
|
|
|
|
TRACKSOLID_STALE_POLL_INTERVAL_SEC=600
|
|
|
|
|
TRACKSOLID_STALE_AFTER_SEC=1800
|
2026-05-22 21:53:42 +00:00
|
|
|
|
|
|
|
|
# Geocoding (P2)
|
|
|
|
|
NOMINATIM_BASE_URL=
|
|
|
|
|
MAPBOX_TOKEN=
|
|
|
|
|
|
|
|
|
|
# Alerting (D9)
|
|
|
|
|
NTFY_BASE_URL=https://ntfy.rahamafresh.com
|
|
|
|
|
NTFY_TOPIC=fleet-slo-breach
|
|
|
|
|
NTFY_TOKEN=
|
|
|
|
|
|
|
|
|
|
# Runtime
|
|
|
|
|
APP_MODE=dev # dev|prod — dev enables uvicorn --reload
|
|
|
|
|
APP_ROLE=gateway # gateway|worker|cron — selected per container
|
|
|
|
|
APP_LOG_LEVEL=INFO
|
|
|
|
|
|
|
|
|
|
# Build-time (injected by CI)
|
|
|
|
|
APP_GIT_SHA=local
|