- Replace Clerk with self-hosted JWT auth (register/login/verify, bcrypt passwords, Gmail OTP with console fallback) - Add lib/db.ts pg pool + transaction helpers; seed script migrates legacy Clerk-era schema (drop clerk_id, enforce UUID ids and unique email) - Add owner-gated admin API: stats, users, drivers CRUD, rides - Add dashboard/ Vite React owner dashboard (login, overview, users, fleet, rides) with dev-server proxy to avoid Expo CORS middleware - Add scripts/set-owner.mjs for role management
34 lines
1.3 KiB
Bash
34 lines
1.3 KiB
Bash
# .env
|
|
|
|
# jwt secret for self-hosted auth sessions (generate with: openssl rand -hex 32)
|
|
AUTH_JWT_SECRET=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
|
|
|
# postgres db url (self-hosted, e.g. postgresql://user:password@localhost:5432/waseel)
|
|
DATABASE_URL="postgresql://username:password@hostname:port/waseel"
|
|
|
|
# expo api server url (you can set it to any random url for development)
|
|
EXPO_PUBLIC_SERVER_URL="https://example.com/"
|
|
|
|
# google oauth client ids (from Google Cloud console, type "Web/iOS/Android")
|
|
EXPO_PUBLIC_GOOGLE_AUTH_WEB_CLIENT_ID=XXXXXXXX.apps.googleusercontent.com
|
|
EXPO_PUBLIC_GOOGLE_AUTH_IOS_CLIENT_ID=XXXXXXXX.apps.googleusercontent.com
|
|
EXPO_PUBLIC_GOOGLE_AUTH_ANDROID_CLIENT_ID=XXXXXXXX.apps.googleusercontent.com
|
|
|
|
# gmail api (oauth refresh token with gmail.send scope; leave blank to log codes to server console)
|
|
GMAIL_CLIENT_ID=
|
|
GMAIL_CLIENT_SECRET=
|
|
GMAIL_REFRESH_TOKEN=
|
|
GMAIL_FROM="Waseel <you@gmail.com>"
|
|
|
|
# geoapify api key
|
|
EXPO_PUBLIC_GEOAPIFY_API_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
|
|
|
# google api key
|
|
EXPO_PUBLIC_GOOGLE_API_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
|
|
|
# areeba payment gateway (credentials issued after merchant onboarding)
|
|
AREEBA_API_BASE_URL="https://your-gateway-host.areeba.com"
|
|
AREEBA_MERCHANT_ID=XXXXXXXXXXXX
|
|
AREEBA_API_PASSWORD=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
|
AREEBA_API_VERSION=100
|