Variables de Entorno (.env)
El archivo .env es el núcleo de la configuración de FeedbackPulse. Se crea automáticamente durante la instalación, pero puedes editarlo manualmente en cualquier momento.
📍 Ubicación del Archivo
/var/www/feedbackpulse-saas/.env
⚠️ Seguridad: El archivo
.envcontiene datos sensibles (contraseñas de base de datos, claves API). Nunca lo subas a un repositorio de control de versiones ni lo expongas públicamente. Debe tener permisos640.
🔧 Después de Editar .env
Después de realizar cambios, limpia la caché de configuración:
php artisan config:clear
php artisan config:cache # Opcional: cachear para rendimiento en producción
📋 Referencia Completa de Variables
🏠 Configuración de la Aplicación
| Variable | Valor Predeterminado | Descripción |
|---|---|---|
APP_NAME | FeedbackPulse | Nombre de la plataforma (mostrado en emails, títulos) |
APP_ENV | production | Entorno: production, local, staging |
APP_KEY | (auto-generado) | Clave de cifrado. ¡Nunca cambiar después de la instalación! |
APP_DEBUG | false | Mostrar errores detallados. ¡Debe ser false en producción! |
APP_URL | https://yourdomain.com | URL completa de tu plataforma (con https) |
APP_LOCALE | en | Idioma predeterminado |
APP_FALLBACK_LOCALE | en | Idioma de respaldo |
BCRYPT_ROUNDS | 12 | Fortaleza del hash de contraseñas (mayor = más lento pero más seguro) |
⚠️
APP_DEBUG=trueexpondrá información sensible (credenciales de base de datos, claves API) en las páginas de error. Nunca habilitar en producción excepto para sesiones de depuración breves.
🗄️ Base de Datos
| Variable | Valor Predeterminado | Descripción |
|---|---|---|
DB_CONNECTION | mysql | Driver de base de datos: mysql, mariadb, sqlite, pgsql |
DB_HOST | 127.0.0.1 | Dirección del servidor de base de datos |
DB_PORT | 3306 | Puerto de la base de datos |
DB_DATABASE | feedbackpulse | Nombre de la base de datos |
DB_USERNAME | root | Usuario de la base de datos |
DB_PASSWORD | (vacío) | Contraseña de la base de datos |
📧 Email / SMTP
| Variable | Valor Predeterminado | Descripción |
|---|---|---|
MAIL_MAILER | smtp | Driver de correo: smtp, ses, postmark, sendmail, log |
MAIL_HOST | smtp.mailgun.org | Host del servidor SMTP |
MAIL_PORT | 587 | Puerto SMTP (587 para TLS, 465 para SSL) |
MAIL_USERNAME | (vacío) | Usuario SMTP |
MAIL_PASSWORD | (vacío) | Contraseña SMTP |
MAIL_ENCRYPTION | tls | Cifrado: tls, ssl o null |
MAIL_FROM_ADDRESS | [email protected] | Dirección de email del remitente |
MAIL_FROM_NAME | FeedbackPulse | Nombre del remitente |
💳 Stripe (Opcional)
| Variable | Valor Predeterminado | Descripción |
|---|---|---|
STRIPE_PUBLISHABLE_KEY | (vacío) | Clave publicable de Stripe (comienza con pk_) |
STRIPE_SECRET_KEY | (vacío) | Clave secreta de Stripe (comienza con sk_) |
STRIPE_WEBHOOK_SECRET | (vacío) | Secreto de firma del webhook de Stripe (comienza con whsec_) |
💰 PayPal (Opcional)
| Variable | Valor Predeterminado | Descripción |
|---|---|---|
PAYPAL_CLIENT_ID | (vacío) | ID de cliente de la API REST de PayPal |
PAYPAL_CLIENT_SECRET | (vacío) | Secreto de cliente de la API REST de PayPal |
PAYPAL_WEBHOOK_ID | (vacío) | ID de webhook de PayPal para verificación |
PAYPAL_MODE | sandbox | Modo: sandbox (pruebas) o live (producción) |
🔑 Inicio de Sesión Social (Opcional)
| Variable | Valor Predeterminado | Descripción |
|---|---|---|
GOOGLE_CLIENT_ID | (vacío) | ID de cliente OAuth de Google |
GOOGLE_CLIENT_SECRET | (vacío) | Secreto de cliente OAuth de Google |
GITHUB_CLIENT_ID | (vacío) | ID de cliente OAuth de GitHub |
GITHUB_CLIENT_SECRET | (vacío) | Secreto de cliente OAuth de GitHub |
🤖 IA / OpenAI (Opcional)
| Variable | Valor Predeterminado | Descripción |
|---|---|---|
OPENAI_API_KEY | (vacío) | Clave API de OpenAI para análisis de sentimientos, etiquetado automático, respuestas con IA |
🤖 reCAPTCHA (Opcional)
| Variable | Valor Predeterminado | Descripción |
|---|---|---|
RECAPTCHA_SITE_KEY | (vacío) | Clave de sitio de Google reCAPTCHA v2/v3 |
RECAPTCHA_SECRET_KEY | (vacío) | Clave secreta de Google reCAPTCHA |
🍪 Sesión y Caché
| Variable | Valor Predeterminado | Descripción |
|---|---|---|
SESSION_DRIVER | file | Almacenamiento de sesión: file, database, redis, cookie |
SESSION_LIFETIME | 120 | Tiempo de espera de sesión en minutos |
SESSION_DOMAIN | (vacío) | Dominio de la cookie (configura a .yourdomain.com para subdominios) |
SESSION_SECURE_COOKIE | true | Requiere HTTPS para las cookies de sesión |
CACHE_STORE | file | Driver de caché: file, database, redis, memcached |
📦 Cola y Trabajos
| Variable | Valor Predeterminado | Descripción |
|---|---|---|
QUEUE_CONNECTION | sync | Driver de cola: sync, database, redis |
⏰ Cron (Hosting Compartido)
| Variable | Valor Predeterminado | Descripción |
|---|---|---|
CRON_TOKEN | (auto-generado) | Token secreto para el endpoint cron basado en web /cron/run?token=. Auto-generado durante la instalación. Solo necesario si se usa cron basado en URL en lugar de CLI. |
📁 Almacenamiento de Archivos
| Variable | Valor Predeterminado | Descripción |
|---|---|---|
FILESYSTEM_DISK | local | Disco de almacenamiento predeterminado: local, public, s3 |
🪵 Registro
| Variable | Valor Predeterminado | Descripción |
|---|---|---|
LOG_CHANNEL | stack | Canal de registro: stack, single, daily, syslog |
LOG_LEVEL | error | Nivel mínimo de registro: debug, info, notice, warning, error, critical |
💡 Ejemplo de .env para Producción
APP_NAME="FeedbackPulse"
APP_ENV=production
APP_KEY=base64:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
APP_DEBUG=false
APP_URL=https://feedback.mycompany.com
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=feedbackpulse
DB_USERNAME=fp_user
DB_PASSWORD=super_secure_password_here
SESSION_DRIVER=file
SESSION_LIFETIME=120
SESSION_DOMAIN=.feedback.mycompany.com
SESSION_SECURE_COOKIE=true
CACHE_STORE=file
QUEUE_CONNECTION=sync
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailgun.org
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=mailgun_password_here
MAIL_ENCRYPTION=tls
[email protected]
MAIL_FROM_NAME="FeedbackPulse"
STRIPE_PUBLISHABLE_KEY=pk_live_xxxxx
STRIPE_SECRET_KEY=sk_live_xxxxx
STRIPE_WEBHOOK_SECRET=whsec_xxxxx
OPENAI_API_KEY=sk-xxxxx
LOG_CHANNEL=daily
LOG_LEVEL=error