Configuration

Environment variables and settings for LegalEase.

LegalEase reads configuration from environment variables. This page covers all available settings for local development and production deployment.

Environment Files

FilePurpose
frontend/.envNuxt runtime configuration, Firebase config
Firebase SecretsAPI keys for Cloud Functions (production)

Frontend Configuration

Copy frontend/.env.example to frontend/.env:

# ============================================
# MINIMAL LOCAL SETUP (just need these!)
# ============================================
# For local development with Firebase emulators, you only need:
# 1. NUXT_PUBLIC_USE_EMULATORS=true
# 2. GOOGLE_GENAI_API_KEY (get from https://aistudio.google.com/apikey)

NUXT_PUBLIC_USE_EMULATORS=true

# ============================================
# AI Configuration
# ============================================

# Required for Gemini transcription and summarization
GOOGLE_GENAI_API_KEY=your-gemini-api-key

# Transcription provider: 'gemini' (default) or 'chirp'
TRANSCRIPTION_PROVIDER=gemini

# ============================================
# Firebase Configuration (for production)
# ============================================
# Get these from Firebase Console > Project Settings > Your apps
# Not needed when using emulators.

FIREBASE_API_KEY=
FIREBASE_AUTH_DOMAIN=your-project.firebaseapp.com
FIREBASE_PROJECT_ID=your-project-id
FIREBASE_STORAGE_BUCKET=your-project.firebasestorage.app
FIREBASE_MESSAGING_SENDER_ID=
FIREBASE_APP_ID=

# ============================================
# Optional Settings
# ============================================

# Public site URL (for OG images, etc.)
NUXT_PUBLIC_SITE_URL=http://localhost:3000

Firebase Secrets (Production)

For production deployment, sensitive keys are stored as Firebase secrets:

# Set secrets for Cloud Functions
firebase functions:secrets:set GOOGLE_GENAI_API_KEY
firebase functions:secrets:set QDRANT_URL
firebase functions:secrets:set QDRANT_API_KEY

Secrets are automatically injected into functions at runtime.

Transcription Providers

Gemini (Default)

Best for local development:

  • Works with Firebase Storage emulator
  • No GCP project required
  • Only needs GOOGLE_GENAI_API_KEY
TRANSCRIPTION_PROVIDER=gemini

Chirp (Google Speech-to-Text)

Best for production:

  • Requires production GCS bucket
  • Native diarization with higher accuracy
  • Needs full GCP project setup
TRANSCRIPTION_PROVIDER=chirp

When using Chirp, the frontend automatically connects to production Firebase Storage even in development mode.

Qdrant Configuration

Local Development

Default configuration uses local Qdrant:

QDRANT_URL=http://localhost:6333
# No API key needed for local

Qdrant Cloud (Production)

QDRANT_URL=https://your-cluster.qdrant.io:6333
QDRANT_API_KEY=your-qdrant-api-key

Docker Services

The docker-compose.yml configures local services:

Docling (Document Extraction)

Service Management

# Start services
mise run services:up

# Stop services
mise run services:down

# View logs
docker compose logs -f qdrant docling

Firebase Emulator Settings

The emulators use default ports:

ServicePort
Emulator UI4000
Functions5001
Firestore8080
Auth9099
Storage9199

Emulator data persists in emulator-data/ directory.

Import/Export Data

# Export current emulator state
firebase emulators:export ./emulator-data

# Start with existing data
firebase emulators:start --import=./emulator-data

Model Configuration

Transcription

SettingDefaultDescription
geminiModelgemini-2.5-flashModel for transcription
maxSpeakers6Maximum speakers to identify
languageautoLanguage detection

Summarization

Uses Gemini 2.5 Flash via Genkit with structured output schemas.

Embeddings

SettingDefaultDescription
modeltext-embedding-004Gemini embedding model
dimensions768Vector dimensions

Security Considerations

Development

  • Emulators have no authentication by default
  • All data is local
  • Safe for development and testing

Production

  • Enable Firebase Security Rules
  • Use Firebase App Check for API protection
  • Set up proper IAM roles for GCP services
  • Never commit secrets to version control

Security Rules

Firestore and Storage security rules are in:

  • firestore.rules
  • storage.rules

Deploy rules:

firebase deploy --only firestore:rules,storage:rules

Logging

Development

  • Function logs visible in Firebase Emulator UI
  • Nuxt dev server shows request logs
  • Docker logs via docker compose logs

Production

  • Cloud Functions logs in Google Cloud Console
  • Structured logging with severity levels
  • Error tracking via Cloud Error Reporting

Built with Nuxt UI • LegalEase AI © 2025