Configuration

All MatchNest configuration is done via environment variables in your .env file and the Admin Panel.

Environment Variables

Database

VariableDefaultDescription
DATABASE_URLfile:./dev.dbPrisma database connection string

Authentication

VariableDescription
JWT_SECRETSecret key for signing JWT tokens (min 32 chars)
NEXTAUTH_URLFull URL of your site (e.g. https://yourdomain.com)
JWT_EXPIRES_INToken expiry duration (default: 7d)

File Uploads

VariableDefaultDescription
UPLOAD_MAX_SIZE_MB10Maximum file upload size in megabytes
UPLOAD_ALLOWED_TYPESimage/jpeg,image/png,image/webpAllowed MIME types for uploads

Email (SMTP)

VariableDescription
SMTP_HOSTSMTP server hostname
SMTP_PORTSMTP port (typically 587 or 465)
SMTP_USERSMTP login username
SMTP_PASSSMTP login password
SMTP_FROMSender address (e.g. MatchNest <[email protected]>)

Admin Panel Settings

Most runtime configuration is available through the admin panel at /admin/settings:

  • General — Site name, logo, tagline, contact email, support phone
  • Registration — Toggle open registration, email verification, phone OTP, manual approval
  • Social Links — Facebook, Twitter/X, Instagram, YouTube
  • Maintenance Mode — Put the site in maintenance mode with a custom message

Subscription Plans

Plans are managed in the admin panel at /admin/packages. You can create, edit, and delete packages. Each package supports:

  • Name, price, and billing period
  • Feature flags (interests/month, messages/month, contact views, gallery photos, verified badge, profile boost, etc.)
  • Custom descriptions

Database Configuration

MatchNest uses Prisma ORM with SQLite by default. For production, switch to PostgreSQL or MySQL:

# prisma/schema.prisma — change the provider
datasource db {
  provider = "postgresql"   // "sqlite" | "mysql" | "postgresql"
}

# Update DATABASE_URL in .env accordingly
DATABASE_URL="postgresql://user:pass@host:5432/dbname"

After changing providers, run npm run db:push to recreate the schema.