# Copy this file to ".env" and fill in real values. # PostgreSQL connection — REQUIRED. Copy from the Liara database dashboard. # Format: postgresql://root:@.liara.cloud:/ DATABASE_URL=postgresql://root:password@localhost:5432/andishkade # Set to "disable" only when connecting over Liara's internal private network (no TLS). # Leave unset (TLS on) for the public connection string. DATABASE_SSL= # JWT signing secret — REQUIRED. Must be 32+ random chars. Never commit the real value. # Generate: node -e "console.log(require('crypto').randomBytes(48).toString('hex'))" JWT_SECRET=replace-with-64-random-hex-chars # Default admin credentials used by `npm run seed` — REQUIRED, min 12 chars ADMIN_USERNAME=admin ADMIN_PASSWORD=replace-with-strong-password # Server port PORT=3001 # Public origin (used in returned image URLs). Set to your real domain in prod. PUBLIC_ORIGIN=http://localhost:3001 # Comma-separated origins allowed to call the API (your frontend URL) ALLOWED_ORIGINS=http://localhost:5173 # Contact form recipients (comma-separated) — REQUIRED for the contact form to send MAIL_TO=recipient@example.com, second@example.com # Gmail credentials for contact form emails MAIL_USER=your-gmail@gmail.com MAIL_PASS=your-gmail-app-password # Local uploads dir — on Liara point this at a mounted Disk (e.g. /var/lib/uploads). # Ignored when object storage (below) is configured. UPLOADS_DIR= # Object storage (Liara / S3-compatible). When all four are set, image + video # uploads go to the bucket instead of local disk. Bucket must allow public reads. LIARA_ENDPOINT=storage.iran.liara.site LIARA_BUCKET=your-bucket-name LIARA_ACCESS_KEY=your-access-key LIARA_SECRET_KEY=your-secret-key