# ============================================================================= # MICHANGARRITO - VARIABLES DE ENTORNO # ============================================================================= # Copiar este archivo a .env y configurar los valores # Generado: 2026-01-04 # ============================================================================= # ----------------------------------------------------------------------------- # APLICACION # ----------------------------------------------------------------------------- NODE_ENV=development APP_NAME=michangarrito APP_VERSION=1.0.0 APP_DESCRIPTION="POS inteligente para micro-negocios" # ----------------------------------------------------------------------------- # PUERTOS DE SERVICIOS # ----------------------------------------------------------------------------- WEB_PORT=3140 BACKEND_PORT=3141 MCP_PORT=3142 WHATSAPP_PORT=3143 MOBILE_METRO_PORT=8081 # ----------------------------------------------------------------------------- # BASE DE DATOS POSTGRESQL # ----------------------------------------------------------------------------- DB_HOST=localhost DB_PORT=5432 DB_NAME=michangarrito_dev DB_USER=michangarrito_dev # Generar con: openssl rand -base64 32 DB_PASSWORD=MCh_dev_2025_secure # URL de conexion completa (se construye automaticamente) DATABASE_URL=postgresql://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_NAME} # Pool de conexiones DB_POOL_SIZE=10 DB_POOL_MIN=2 # SSL (solo produccion) DB_SSL=false # ----------------------------------------------------------------------------- # REDIS # ----------------------------------------------------------------------------- REDIS_HOST=localhost REDIS_PORT=6389 REDIS_PASSWORD= REDIS_DATABASE=0 REDIS_URL=redis://${REDIS_HOST}:${REDIS_PORT}/${REDIS_DATABASE} # ----------------------------------------------------------------------------- # JWT / AUTENTICACION # ----------------------------------------------------------------------------- # Generar con: openssl rand -base64 64 JWT_SECRET=MCh_jwt_dev_2025_AcB7x9KmPq2sWfHg4jL8nRt0vYzXw1CdEiFoGhJkLmN3pQrSuVxY5bZ6aBeC8fDg JWT_EXPIRES_IN=7d JWT_REFRESH_EXPIRES_IN=30d # OTP para login OTP_EXPIRES_MINUTES=5 OTP_LENGTH=6 # PIN de acceso rapido PIN_LENGTH=4 PIN_MAX_ATTEMPTS=3 PIN_LOCKOUT_MINUTES=30 # Biometrico BIOMETRIC_ENABLED=true # ----------------------------------------------------------------------------- # WHATSAPP BUSINESS API (Meta) # ----------------------------------------------------------------------------- # Verificacion del webhook WHATSAPP_VERIFY_TOKEN=MCh_wa_verify_2025_x7k9m3p5q8r2t4w6y0 # Token de acceso (obtener de Meta Business) WHATSAPP_ACCESS_TOKEN= # ID del numero de telefono WHATSAPP_PHONE_NUMBER_ID= # ID de la cuenta de negocio WHATSAPP_BUSINESS_ACCOUNT_ID= # Webhook URL (para configurar en Meta) WHATSAPP_WEBHOOK_URL=https://tu-dominio.com/webhook/whatsapp # Numero compartido de la plataforma (para multi-tenant) WHATSAPP_PLATFORM_NUMBER=+52XXXXXXXXXX # ----------------------------------------------------------------------------- # LLM / INTELIGENCIA ARTIFICIAL # ----------------------------------------------------------------------------- # Proveedor: openrouter, openai, anthropic, ollama LLM_PROVIDER=openrouter # API Key del proveedor LLM_API_KEY= # Modelo a usar # OpenRouter: anthropic/claude-3-haiku, openai/gpt-4o-mini, meta-llama/llama-3-8b # OpenAI: gpt-4o-mini, gpt-4o # Anthropic: claude-3-haiku-20240307, claude-3-sonnet-20240229 # Ollama: llama3, mistral, phi3 LLM_MODEL=anthropic/claude-3-haiku # URL base del proveedor # OpenRouter: https://openrouter.ai/api/v1 # OpenAI: https://api.openai.com/v1 # Anthropic: https://api.anthropic.com/v1 # Ollama: http://localhost:11434/api LLM_BASE_URL=https://openrouter.ai/api/v1 # Limites LLM_MAX_TOKENS=4096 LLM_TEMPERATURE=0.7 # Tokens por defecto para nuevos usuarios LLM_DEFAULT_TOKENS=500 # ----------------------------------------------------------------------------- # MCP SERVER (Model Context Protocol) # ----------------------------------------------------------------------------- MCP_SERVER_NAME=michangarrito-mcp MCP_SERVER_VERSION=1.0.0 MCP_LOG_LEVEL=info # Herramientas habilitadas (separadas por coma) MCP_ENABLED_TOOLS=ventas,productos,inventario,clientes,fiados,pedidos,reportes,configuracion # ----------------------------------------------------------------------------- # STRIPE (Suscripciones y Pagos) # ----------------------------------------------------------------------------- # Claves de API (modo test) # Obtener de: https://dashboard.stripe.com/test/apikeys STRIPE_SECRET_KEY=sk_test_ STRIPE_PUBLISHABLE_KEY=pk_test_ # Webhook secret # Obtener de: https://dashboard.stripe.com/test/webhooks STRIPE_WEBHOOK_SECRET=whsec_ # IDs de productos/precios (crear en Stripe Dashboard) STRIPE_PRICE_CHANGARRITO=price_ STRIPE_PRICE_TIENDITA=price_ STRIPE_PRICE_TOKENS_1000=price_ STRIPE_PRICE_TOKENS_3000=price_ STRIPE_PRICE_TOKENS_8000=price_ STRIPE_PRICE_TOKENS_20000=price_ # Referencia OXXO STRIPE_OXXO_ENABLED=true # ----------------------------------------------------------------------------- # MERCADO PAGO (Terminal de Pago) # ----------------------------------------------------------------------------- # Access Token (obtener de Mercado Pago Developers) MERCADOPAGO_ACCESS_TOKEN= # Public Key MERCADOPAGO_PUBLIC_KEY= # User ID (para Point integration) MERCADOPAGO_USER_ID= # Device ID de la terminal MERCADOPAGO_DEVICE_ID= # Webhook URL MERCADOPAGO_WEBHOOK_URL=https://tu-dominio.com/webhook/mercadopago # ----------------------------------------------------------------------------- # CLIP (Terminal de Pago) # ----------------------------------------------------------------------------- # API Key (obtener de Clip Dashboard) CLIP_API_KEY= # Merchant ID CLIP_MERCHANT_ID= # Device ID de la terminal CLIP_DEVICE_ID= # Webhook URL CLIP_WEBHOOK_URL=https://tu-dominio.com/webhook/clip # ----------------------------------------------------------------------------- # CODI (Banxico QR) # ----------------------------------------------------------------------------- # Habilitado CODI_ENABLED=true # CLABE virtual para recepcion CODI_CLABE= # Certificado (path o base64) CODI_CERTIFICATE= # Llave privada (path o base64) CODI_PRIVATE_KEY= # ----------------------------------------------------------------------------- # FIREBASE (Push Notifications) # ----------------------------------------------------------------------------- # Project ID FIREBASE_PROJECT_ID= # Service Account (JSON) # Opcion 1: Path al archivo FIREBASE_SERVICE_ACCOUNT_PATH=./firebase-service-account.json # Opcion 2: JSON como string (para produccion) FIREBASE_SERVICE_ACCOUNT_JSON= # Habilitado FIREBASE_PUSH_ENABLED=true # ----------------------------------------------------------------------------- # OCR / VISION (Procesamiento de Imagenes) # ----------------------------------------------------------------------------- # Google Cloud Vision # Obtener de: https://console.cloud.google.com/apis/credentials GOOGLE_VISION_API_KEY= # Alternativa: Tesseract local OCR_PROVIDER=google # OCR_PROVIDER=tesseract # ----------------------------------------------------------------------------- # TRANSCRIPCION DE AUDIO # ----------------------------------------------------------------------------- # OpenAI Whisper API # Obtener de: https://platform.openai.com/api-keys OPENAI_API_KEY= # Modelo de Whisper WHISPER_MODEL=whisper-1 # Alternativa: Whisper local TRANSCRIPTION_PROVIDER=openai # TRANSCRIPTION_PROVIDER=local # ----------------------------------------------------------------------------- # ALMACENAMIENTO # ----------------------------------------------------------------------------- # Tipo: local, s3, cloudinary STORAGE_TYPE=local # Local STORAGE_LOCAL_PATH=./uploads STORAGE_MAX_SIZE_MB=10 # AWS S3 (para produccion) AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= AWS_REGION=us-east-1 AWS_S3_BUCKET=michangarrito-uploads # Cloudinary (alternativa) CLOUDINARY_CLOUD_NAME= CLOUDINARY_API_KEY= CLOUDINARY_API_SECRET= # ----------------------------------------------------------------------------- # CORS # ----------------------------------------------------------------------------- FRONTEND_URL=http://localhost:3140 ALLOWED_ORIGINS=http://localhost:3140,http://localhost:3141,exp://localhost:8081 # ----------------------------------------------------------------------------- # LOGGING # ----------------------------------------------------------------------------- LOG_LEVEL=debug LOG_FORMAT=pretty # LOG_FORMAT=json (para produccion) # Sentry (error tracking - produccion) SENTRY_DSN= SENTRY_ENVIRONMENT=development # ----------------------------------------------------------------------------- # SMTP / EMAIL (Opcional) # ----------------------------------------------------------------------------- SMTP_HOST=localhost SMTP_PORT=1025 SMTP_USER= SMTP_PASSWORD= SMTP_FROM=noreply@michangarrito.com # Mailhog para desarrollo MAILHOG_WEB_PORT=8025 # ----------------------------------------------------------------------------- # RATE LIMITING # ----------------------------------------------------------------------------- RATE_LIMIT_TTL=60 RATE_LIMIT_LIMIT=100 # WhatsApp rate limits WHATSAPP_RATE_LIMIT_MESSAGES=1000 WHATSAPP_RATE_LIMIT_WINDOW=86400 # ----------------------------------------------------------------------------- # CACHE # ----------------------------------------------------------------------------- CACHE_TTL=300 CACHE_MAX_ITEMS=1000 # Cache de productos (mas largo) CACHE_PRODUCTS_TTL=3600 # ----------------------------------------------------------------------------- # JOBS / QUEUES (Bull) # ----------------------------------------------------------------------------- BULL_REDIS_HOST=${REDIS_HOST} BULL_REDIS_PORT=${REDIS_PORT} # Colas disponibles QUEUE_NOTIFICATIONS=notifications QUEUE_REPORTS=reports QUEUE_SYNC=sync QUEUE_WHATSAPP=whatsapp # ----------------------------------------------------------------------------- # EXPO / MOBILE # ----------------------------------------------------------------------------- EXPO_PROJECT_ID= EXPO_OWNER= # EAS Build EAS_PROJECT_ID= # Updates EXPO_UPDATES_URL=https://u.expo.dev/ # ----------------------------------------------------------------------------- # MULTI-TENANT # ----------------------------------------------------------------------------- # Modo: single (un negocio por instancia) o multi (varios negocios) TENANT_MODE=multi # Deteccion de tenant por: # - subdomain: negocio.michangarrito.com # - header: X-Tenant-ID # - whatsapp: detectar por contexto de conversacion TENANT_DETECTION=whatsapp # ----------------------------------------------------------------------------- # NEGOCIO / CONFIGURACION # ----------------------------------------------------------------------------- # Moneda por defecto DEFAULT_CURRENCY=MXN # Zona horaria DEFAULT_TIMEZONE=America/Mexico_City # Idioma DEFAULT_LANGUAGE=es-MX # Impuestos DEFAULT_TAX_RATE=16 TAX_INCLUDED=true # Tickets TICKET_COMPANY_NAME=MiChangarrito TICKET_FOOTER=Gracias por su compra # Horario de operacion por defecto DEFAULT_OPENING_HOUR=8 DEFAULT_CLOSING_HOUR=22 # ----------------------------------------------------------------------------- # DESARROLLO # ----------------------------------------------------------------------------- # Hot reload HOT_RELOAD=true # Debug DEBUG=true DEBUG_SQL=false # Seed data SEED_ENABLED=true # Swagger docs SWAGGER_ENABLED=true SWAGGER_PATH=/api/docs # ----------------------------------------------------------------------------- # PRODUCCION (descomentar para produccion) # ----------------------------------------------------------------------------- # NODE_ENV=production # DEBUG=false # LOG_FORMAT=json # SWAGGER_ENABLED=false # DB_SSL=true # STORAGE_TYPE=s3 # ============================================================================= # FIN DE CONFIGURACION # =============================================================================