# ============================================================================= # Memento Note - Environment Variables # Copy this file to .env and fill in the values # ============================================================================= # ----------------------------------------------------------------------------- # Core (required) # ----------------------------------------------------------------------------- DATABASE_URL="postgresql://memento:memento@localhost:5432/memento" NEXTAUTH_SECRET="generate-with-openssl-rand-base64-32" NEXTAUTH_URL="http://localhost:3000" # ----------------------------------------------------------------------------- # Registration & Admin # ----------------------------------------------------------------------------- # Set to "false" to disable public registration (default: true) # ALLOW_REGISTRATION="true" # Admin email - The first user registering with this email gets ADMIN role (REQUIRED) # ADMIN_EMAIL="admin@yourdomain.com" # Google OAuth (optional — shows "Continue with Google" on login when both are set) # Create credentials: https://console.cloud.google.com/apis/credentials # Authorized redirect URI: {NEXTAUTH_URL}/api/auth/callback/google # AUTH_GOOGLE_ID="....apps.googleusercontent.com" # AUTH_GOOGLE_SECRET="GOCSPX-..." # AUTH_GOOGLE_PROMPT="select_account" # or "login" to force Google password every time # ----------------------------------------------------------------------------- # AI Providers # ----------------------------------------------------------------------------- # Main provider: "openai" | "anthropic" | "anthropic_custom" | "ollama" | "deepseek" | "openrouter" | "custom-openai" # AI_PROVIDER="openai" # Per-feature provider overrides (optional, falls back to AI_PROVIDER) # AI_PROVIDER_CHAT="openai" # AI_PROVIDER_TAGS="anthropic" # AI_PROVIDER_EMBEDDING="openai" # Model names (optional, uses provider defaults) # AI_MODEL_CHAT="gpt-4o-mini" # AI_MODEL_TAGS="claude-sonnet-4-20250514" # AI_MODEL_EMBEDDING="text-embedding-3-small" # OpenAI # OPENAI_API_KEY="sk-..." # Anthropic (official Messages API — tags/chat only; use another provider for embeddings) # ANTHROPIC_API_KEY="sk-ant-api03-..." # Anthropic-compatible Messages API (custom host — ex. MiniMax M2.7, pas OpenAI) # Same key as sur https://platform.minimax.io — base URL sans slash final. # ANTHROPIC_CUSTOM_API_KEY="" # ANTHROPIC_CUSTOM_BASE_URL="https://api.minimax.io/anthropic" # China: https://api.minimaxi.com/anthropic — Model ID admin: MiniMax-M2.7 # Embeddings MiniMax: utiliser CUSTOM_* avec https://api.minimax.io/v1 # Ollama (local) # OLLAMA_BASE_URL="http://localhost:11434" # Custom OpenAI-compatible endpoint (incl. MiniMax OpenAI API /v1) # CUSTOM_OPENAI_API_KEY="..." # CUSTOM_OPENAI_BASE_URL="https://your-provider.com/v1" # ----------------------------------------------------------------------------- # Email (at least one provider required for password reset) # ----------------------------------------------------------------------------- # Resend (https://resend.com) # RESEND_API_KEY="re_..." # SMTP # SMTP_HOST="smtp.example.com" # SMTP_PORT="587" # SMTP_USER="" # SMTP_PASS="" # SMTP_FROM="noreply@example.com" # SMTP_SECURE="false" # SMTP_IGNORE_CERT="false" # ----------------------------------------------------------------------------- # MCP (Model Context Protocol) # ----------------------------------------------------------------------------- # MCP_SERVER_MODE="disabled" # MCP_SERVER_URL="" # En production derrière un reverse proxy (ex: Nginx Proxy Manager) : # MCP_SERVER_URL="https://memento-note.com/mcp" # (configurer /mcp → 127.0.0.1:3001 dans le proxy) # ----------------------------------------------------------------------------- # BYOK encryption (Story 3.5 — required in production when users save API keys) # ----------------------------------------------------------------------------- # Generate: openssl rand -base64 32 (minimum 32 characters) # MASTER_ENCRYPTION_KEY="" # ----------------------------------------------------------------------------- # Stripe (Story 3.6 — subscription tiers) # ----------------------------------------------------------------------------- # Server-side secrets — NEVER expose on client # STRIPE_SECRET_KEY="sk_test_..." # STRIPE_WEBHOOK_SECRET="whsec_..." # Price IDs from Stripe Dashboard (create products/prices there first) # STRIPE_PRICE_PRO_MONTHLY="price_..." # STRIPE_PRICE_PRO_ANNUAL="price_..." # STRIPE_PRICE_BUSINESS_MONTHLY="price_..." # STRIPE_PRICE_BUSINESS_ANNUAL="price_..." # Client-side publishable key (safe to expose) # NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY="pk_test_..." # Feature flag — set to "true" to enable billing UI (default: false) # NEXT_PUBLIC_FEATURE_BILLING_ENABLED="false" # Google Calendar Integration (optional — uses Google OAuth credentials above if not set separately) # GOOGLE_CALENDAR_CLIENT_ID="....apps.googleusercontent.com" # GOOGLE_CALENDAR_CLIENT_SECRET="GOCSPX-..."