Switch admin auth to mobile, restyle shell/login with Vuesax icons, and add product detail fields plus public product pages. Co-authored-by: Cursor <cursoragent@cursor.com>
39 lines
1.4 KiB
Bash
39 lines
1.4 KiB
Bash
# --- server ---
|
|
PORT=4000
|
|
NODE_ENV=development
|
|
# comma-separated origins allowed to call the API from a browser (admin dev server, site)
|
|
CORS_ORIGINS=http://localhost:5173,http://localhost:3000
|
|
|
|
# --- database (docker-compose.dev.yml) ---
|
|
DATABASE_URL=postgresql://imen:imen@localhost:5433/imen
|
|
|
|
# --- auth ---
|
|
# generate with: node -e "console.log(require('crypto').randomBytes(48).toString('base64url'))"
|
|
JWT_SECRET=change-me-dev-secret-change-me-dev-secret
|
|
JWT_ACCESS_TTL=15m
|
|
REFRESH_TTL_DAYS=30
|
|
# set to false only when serving the admin over plain http in production
|
|
COOKIE_SECURE=false
|
|
|
|
# first admin user, created by `pnpm db:seed`
|
|
ADMIN_PHONE=09120000000
|
|
ADMIN_PASSWORD=ChangeMe123!
|
|
ADMIN_NAME=مدیر سایت
|
|
|
|
# --- object storage (MinIO in dev, any S3-compatible service in production) ---
|
|
S3_ENDPOINT=http://localhost:9000
|
|
S3_REGION=us-east-1
|
|
S3_BUCKET=imen-media
|
|
S3_ACCESS_KEY=imen
|
|
S3_SECRET_KEY=imen-secret-key
|
|
S3_FORCE_PATH_STYLE=true
|
|
# create the bucket and make it publicly readable on startup (MinIO)
|
|
S3_ENSURE_BUCKET=true
|
|
# public base URL of uploaded files (no trailing slash). "/media" is proxied to the bucket
|
|
# by the site/admin dev servers and by nginx in production, so URLs are the same everywhere
|
|
MEDIA_PUBLIC_URL=/media
|
|
|
|
# --- website cache revalidation ---
|
|
WEB_REVALIDATE_URL=http://localhost:3000/_internal/revalidate
|
|
REVALIDATE_SECRET=change-me-revalidate-secret
|