Add self-hosted auth, admin API, and owner web dashboard
- 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
This commit is contained in:
+15
-4
@@ -1,14 +1,25 @@
|
||||
# .env
|
||||
|
||||
# clerk publishable key
|
||||
EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_YOUR_KEY_HERE
|
||||
# jwt secret for self-hosted auth sessions (generate with: openssl rand -hex 32)
|
||||
AUTH_JWT_SECRET=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
|
||||
# postgres db url (neon db)
|
||||
DATABASE_URL="postgresql://username:password@hostname:port/uber-clone?sslmode=require"
|
||||
# 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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user