# --- 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:5435/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