El archivo de entorno
Cada variable que se lee de .env, su valor por omisión y cuáles poner antes del primer arranque.
Todo lo que cambia entre máquinas vive en .env. Lo que pertenece al producto en sí es un valor committeado en config/. Esta guía recorre el archivo completo, grupo por grupo, para que veas en un solo lugar qué lee la aplicación. Las variables que pertenecen a una función también se nombran aquí, con un enlace a la guía que explica la función.
Pon estas antes del primer arranque
.env.example es una copia de la configuración de un servidor, con valores de relleno donde van los secretos. Antes de la primera petición, decide estas:
| Variable | Por qué no puede esperar |
|---|---|
APP_KEY |
php artisan key:generate la escribe; sin ella nada se cifra |
APP_NAME |
nombra el sitio, los correos, la PWA y la cookie de sesión |
APP_URL |
de ahí salen todo enlace absoluto, el alcance de la PWA y el dominio de saludo SMTP |
DB_CONNECTION, DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD |
la migración las necesita |
FILESYSTEM_DISK |
viene como s3 con llaves de AWS falsas; pon public hasta que tengas un bucket |
MAIL_MAILER |
viene como failover, que necesita credenciales de Mailgun o SES; pon log en local |
MAIL_FROM_ADDRESS |
el remitente de cada correo; el valor de ejemplo no es tuyo |
SESSION_DRIVER |
déjalo en database: la lista de dispositivos de la cuenta lee la tabla sessions |
Todo lo demás tiene un valor por omisión que deja arrancar la aplicación. Los valores de relleno que .env.example deja en AWS_*, TELNYX_*, STRIPE_* y AUTH_VALIDATION_PROVIDER no hacen daño hasta que enciendes la función que los lee; bórralos o reemplázalos cuando llegues ahí.
Los valores con espacios necesitan comillas: APP_NAME="Tu Proyecto". Una variable presente pero vacía se lee como cadena vacía, no como ausente, así que quita la línea en vez de dejarla en blanco cuando quieras recuperar el valor por omisión.
Aplicación
Las lee config/app.php.
| Variable | Valor por omisión | Para qué |
|---|---|---|
APP_NAME |
Laravel |
Se muestra en la interfaz, los correos y el manifest; también siembra los prefijos por omisión de cookie, caché y Redis |
APP_ENV |
production |
local en tu máquina. php artisan env imprime lo que la aplicación cree |
APP_KEY |
ninguno | Llave de cifrado, escrita por key:generate |
APP_PREVIOUS_KEYS |
vacío | Llaves anteriores separadas por coma, para que lo cifrado con ellas siga descifrándose tras una rotación |
APP_DEBUG |
false |
Páginas de error detalladas y la Debugbar. Nunca true en producción; también relaja la cookie de sesión, ve abajo |
APP_URL |
http://localhost |
URL raíz para enlaces construidos fuera de una petición, la URL del disco public, el alcance de la PWA y VAPID_SUBJECT |
ASSET_URL |
ninguno | Servir los assets compilados desde otro host o CDN |
APP_LOCALE |
es |
Idioma antes de que alguien elija uno; también el lang del manifest de la PWA. Debe ser una llave de languages en config/app.php. El idioma de respaldo está committeado como es |
APP_MAINTENANCE_DRIVER |
file |
file o cache; cache deja que varios servidores compartan el modo de mantenimiento |
APP_MAINTENANCE_STORE |
database |
Almacén de caché usado cuando el driver es cache |
APP_PWA |
false |
Enciende el service worker y el manifest. Ve Web push y la PWA |
COUNTRY_CODE_FALLBACK |
US |
País asumido cuando la IP no se puede resolver, como en 127.0.0.1. Ve Detecta el país del visitante |
Base de datos
Las lee config/database.php. DB_CONNECTION elige una de sqlite, mysql, mariadb, pgsql o sqlsrv; las demás variables las comparten todas. Las tablas failed_jobs y job_batches de la cola usan la misma conexión.
| Variable | Valor por omisión | Para qué |
|---|---|---|
DB_CONNECTION |
mysql |
Qué bloque de conexión es el predeterminado |
DB_URL |
ninguno | Una sola URL de conexión que reemplaza host, puerto, base de datos, usuario y contraseña |
DB_HOST |
127.0.0.1 (localhost para SQL Server) |
Dirección del servidor |
DB_PORT |
3306 MySQL y MariaDB, 5432 PostgreSQL, 1433 SQL Server |
Puerto del servidor |
DB_DATABASE |
laravel; para SQLite database/database.sqlite |
Nombre de la base de datos, o la ruta del archivo SQLite |
DB_USERNAME |
root |
Usuario de la base de datos |
DB_PASSWORD |
vacío | Contraseña de la base de datos |
DB_SOCKET |
vacío | Socket Unix para MySQL y MariaDB en lugar de host y puerto |
DB_CHARSET |
utf8mb4 MySQL y MariaDB, utf8 los demás |
Charset de la conexión |
DB_COLLATION |
utf8mb4_unicode_ci |
Collation para MySQL y MariaDB |
DB_FOREIGN_KEYS |
true |
Exigir llaves foráneas en SQLite |
MYSQL_ATTR_SSL_CA |
ninguno | Ruta a un certificado CA para TLS hacia MySQL o MariaDB |
DB_ENCRYPT, DB_TRUST_SERVER_CERTIFICATE |
ninguno | Listadas en el bloque de SQL Server pero comentadas; nada las lee hasta que descomentes esas líneas |
Correo
Las lee config/mail.php, con las credenciales de proveedor en config/services.php. El kit manda códigos de verificación, restablecimientos de contraseña, notificaciones y correos de cobro, así que un mailer que funcione no es opcional una vez que se registra gente real. Cómo se configura cada transporte de punta a punta, SMS incluido, está en Entrega de correo y SMS.
MAIL_MAILER elige el transporte. Los mailers definidos son smtp, ses, mailgun, postmark, resend, sendmail, log, array, failover y roundrobin. Los dos compuestos están committeados en config/mail.php:
failoverintentamailgun, luegoses, y espera 60 segundos antes de reintentar un transporte que falló. Es el valor que trae.env.example.roundrobinalterna entresesypostmark.
Los correos de verificación tienen una red de seguridad más: después de que el mailer predeterminado falla, el código se manda otra vez por cada mailer de mail_fallbacks en config/auth.php, que viene como ['mailgun'].
| Variable | Valor por omisión | Para qué |
|---|---|---|
MAIL_MAILER |
smtp en config, failover en .env.example |
Transporte a usar |
MAIL_FROM_ADDRESS |
[email protected] |
Dirección remitente de cada correo |
MAIL_FROM_NAME |
APP_NAME |
Nombre del remitente |
MAIL_SCHEME |
ninguno | smtp o smtps para el transporte SMTP |
MAIL_URL |
ninguno | Una sola URL SMTP que reemplaza host, puerto, usuario y contraseña |
MAIL_HOST |
127.0.0.1 |
Servidor SMTP |
MAIL_PORT |
2525 |
Puerto SMTP |
MAIL_USERNAME |
ninguno | Usuario SMTP |
MAIL_PASSWORD |
ninguno | Contraseña SMTP |
MAIL_EHLO_DOMAIN |
el host de APP_URL |
Dominio anunciado en el EHLO de SMTP |
MAIL_SENDMAIL_PATH |
/usr/sbin/sendmail -bs -i |
Binario para el transporte sendmail |
MAIL_LOG_CHANNEL |
ninguno | Canal de log al que escribe el transporte log; el canal predeterminado cuando está vacío |
MAILGUN_DOMAIN |
mg.weblabor.mx |
Tu dominio de envío de Mailgun. Cámbialo: el valor por omisión es el de Weblabor |
MAILGUN_SECRET |
ninguno | Llave de API de Mailgun |
MAILGUN_ENDPOINT |
api.mailgun.net |
api.eu.mailgun.net para la región de la UE |
POSTMARK_TOKEN |
ninguno | Token de servidor de Postmark |
POSTMARK_MESSAGE_STREAM_ID |
ninguno | Flujo de mensajes de Postmark |
RESEND_KEY |
ninguno | Llave de API de Resend |
Amazon SES lee AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY y AWS_DEFAULT_REGION del grupo de archivos de abajo; la región cae a us-east-1 para SES cuando la variable falta.
Archivos y almacenamiento
Las lee config/filesystems.php. Existen tres discos: local en storage/app/private, public en storage/app/public servido en APP_URL/storage a través del enlace que crea php artisan storage:link, y s3. Las subidas y el manejo de imágenes están en Archivos, imágenes y almacenamiento.
| Variable | Valor por omisión | Para qué |
|---|---|---|
FILESYSTEM_DISK |
s3 |
Disco usado cuando no se nombra ninguno. Pon public para archivos que la gente puede ver, local para los que no |
AWS_ACCESS_KEY_ID |
ninguno | Llave de AWS. La comparten S3, SES, SQS, DynamoDB, Bedrock y los códigos telefónicos por SNS |
AWS_SECRET_ACCESS_KEY |
ninguno | Secreto de AWS, compartido igual |
AWS_DEFAULT_REGION |
ninguno para S3 | Región del bucket. SES, SQS y DynamoDB caen a us-east-1; los códigos telefónicos por SNS caen a us-west-1 |
AWS_BUCKET |
ninguno | Nombre del bucket |
AWS_URL |
ninguno | URL pública del bucket cuando no es la de AWS, como un CDN delante de él |
AWS_ENDPOINT |
ninguno | Endpoint propio para un servicio compatible con S3 como MinIO o DigitalOcean Spaces |
AWS_USE_PATH_STYLE_ENDPOINT |
false |
true para servicios que ponen el bucket en la ruta en vez del host |
LIVEWIRE_TEMPORARY_FILE_UPLOAD_DISK |
el disco predeterminado | Dónde estaciona Livewire un archivo mientras un formulario sigue abierto |
Colas
Las lee config/queue.php. Las notificaciones, el web push y los cobros corren todos por la cola, así que un worker tiene que estar corriendo en cada entorno; ve Colas y trabajo programado. El driver database no necesita ningún servicio extra.
| Variable | Valor por omisión | Para qué |
|---|---|---|
QUEUE_CONNECTION |
database |
sync, database, beanstalkd, sqs, redis o null. sync corre los jobs en línea, útil sólo en pruebas |
QUEUE_FAILED_DRIVER |
database-uuids |
Dónde se guardan los jobs fallidos: database-uuids, dynamodb, file o null |
DB_QUEUE_CONNECTION |
la conexión predeterminada | Conexión de base de datos para el driver database |
DB_QUEUE_TABLE |
jobs |
Tabla para el driver database |
DB_QUEUE |
default |
Nombre de la cola para el driver database |
DB_QUEUE_RETRY_AFTER |
10 |
Segundos antes de reintentar un job que sigue corriendo. Súbelo por encima de tu job más largo |
BEANSTALKD_QUEUE_HOST |
localhost |
Servidor de Beanstalkd |
BEANSTALKD_QUEUE |
default |
Tube de Beanstalkd |
BEANSTALKD_QUEUE_RETRY_AFTER |
90 |
Segundos de reintento para Beanstalkd |
SQS_PREFIX |
una URL de relleno de AWS | El prefijo de URL de tu cola SQS, https://sqs.<región>.amazonaws.com/<id de cuenta> |
SQS_QUEUE |
default |
Nombre de la cola SQS |
SQS_SUFFIX |
ninguno | Sufijo añadido al nombre de la cola, usado con colas FIFO |
REDIS_QUEUE_CONNECTION |
default |
Conexión Redis para el driver redis |
REDIS_QUEUE |
default |
Nombre de la cola en Redis |
REDIS_QUEUE_RETRY_AFTER |
90 |
Segundos de reintento para Redis |
SQS también lee AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY y AWS_DEFAULT_REGION.
Sesión
Las lee config/session.php. Dos valores por omisión difieren de una instalación normal de Laravel: la duración es de un año, y las banderas de la cookie siguen a APP_DEBUG y APP_PWA.
| Variable | Valor por omisión | Para qué |
|---|---|---|
SESSION_DRIVER |
file en config, database en .env.example |
Déjalo en database: la lista de dispositivos en /account y los botones de "desconectar" leen la tabla sessions |
SESSION_LIFETIME |
525600 |
Minutos de inactividad antes de que expire una sesión; el valor por omisión es un año. La lista de dispositivos sólo muestra sesiones dentro de esta ventana |
SESSION_EXPIRE_ON_CLOSE |
false |
Expirar cuando se cierra el navegador |
SESSION_ENCRYPT |
false |
Cifrar el contenido guardado de la sesión |
SESSION_CONNECTION |
la conexión predeterminada | Conexión de base de datos o Redis para la sesión |
SESSION_TABLE |
sessions |
Tabla para el driver database |
SESSION_STORE |
ninguno | Almacén de caché para los drivers memcached, redis y dynamodb |
SESSION_COOKIE |
slug de APP_NAME más -session |
Nombre de la cookie |
SESSION_PATH |
/ |
Ruta de la cookie |
SESSION_DOMAIN |
ninguno | Dominio de la cookie; ponlo para compartir la sesión entre subdominios |
SESSION_SECURE_COOKIE |
false cuando APP_DEBUG está encendido, si no el valor de APP_PWA |
Mandar la cookie sólo por HTTPS. Una PWA instalada lo necesita |
SESSION_HTTP_ONLY |
true |
Ocultar la cookie a JavaScript |
SESSION_SAME_SITE |
lax cuando APP_DEBUG está encendido; si no, none si APP_PWA está encendido, y si no lax |
none es lo que deja a la PWA instalada conservar su sesión; exige la bandera secure |
SESSION_PARTITIONED_COOKIE |
false |
Particionar la cookie por sitio de nivel superior; necesita secure y same_site=none |
Caché
Las lee config/cache.php. El almacén database no necesita ningún servicio extra y es el predeterminado.
| Variable | Valor por omisión | Para qué |
|---|---|---|
CACHE_STORE |
database |
array, database, file, memcached, redis, dynamodb, octane o null. También el almacén para la caché de embeddings en config/ai.php |
CACHE_PREFIX |
slug de APP_NAME más -cache- |
Prefijo que separa dos aplicaciones en una caché compartida |
DB_CACHE_CONNECTION |
la conexión predeterminada | Conexión para el almacén database |
DB_CACHE_TABLE |
cache |
Tabla para el almacén database |
DB_CACHE_LOCK_CONNECTION |
la misma de la caché | Conexión para los bloqueos atómicos |
DB_CACHE_LOCK_TABLE |
cache_locks |
Tabla para los bloqueos atómicos |
MEMCACHED_HOST |
127.0.0.1 |
Servidor de Memcached |
MEMCACHED_PORT |
11211 |
Puerto de Memcached |
MEMCACHED_PERSISTENT_ID |
ninguno | Reusar la conexión entre peticiones |
MEMCACHED_USERNAME, MEMCACHED_PASSWORD |
ninguno | Credenciales SASL |
REDIS_CACHE_CONNECTION |
cache |
Conexión Redis para el almacén redis |
REDIS_CACHE_LOCK_CONNECTION |
default |
Conexión Redis para los bloqueos |
DYNAMODB_CACHE_TABLE |
cache |
Tabla para el almacén dynamodb, con las credenciales AWS_* |
DYNAMODB_ENDPOINT |
ninguno | Endpoint de un DynamoDB local |
Redis
Las lee config/database.php. Sólo hacen falta cuando la cola, la caché o la sesión apuntan a redis. Existen dos conexiones: default en la base 0 y cache en la base 1, compartiendo host y credenciales.
| Variable | Valor por omisión | Para qué |
|---|---|---|
REDIS_CLIENT |
phpredis |
La extensión phpredis o el paquete predis |
REDIS_URL |
ninguno | Una sola URL que reemplaza host, puerto, usuario y contraseña |
REDIS_HOST |
127.0.0.1 |
Servidor |
REDIS_PORT |
6379 |
Puerto |
REDIS_USERNAME, REDIS_PASSWORD |
ninguno | Credenciales |
REDIS_DB |
0 |
Número de base de la conexión default |
REDIS_CACHE_DB |
1 |
Número de base de la conexión cache |
REDIS_CLUSTER |
redis |
Modo de clúster |
REDIS_PREFIX |
slug de APP_NAME más -database- |
Prefijo de llaves |
REDIS_PERSISTENT |
false |
Mantener la conexión abierta entre peticiones |
Logs
Las lee config/logging.php. El canal predeterminado es daily, que rota storage/logs/laravel.log y conserva catorce días. Todo lo que registres se puede leer en el navegador en /logs; tal como viene, esa ruta no tiene inicio de sesión delante, así que restríngela antes de que el sitio sea público. Vienen dos canales para mandar errores a otro lado: slack publica por un webhook entrante, y slack_api publica con un token de bot; papertrail manda syslog por TLS. Ve Logs y depuración.
| Variable | Valor por omisión | Para qué |
|---|---|---|
LOG_CHANNEL |
daily |
Canal que recibe todo. Usa stack para repartir a varios |
LOG_STACK |
daily |
Canales separados por coma a los que escribe el canal stack, como daily,slack_api |
LOG_LEVEL |
debug; critical para slack |
Nivel mínimo que se escribe. slack_api está fijo en error |
LOG_DAILY_DAYS |
14 |
Días de archivos diarios que se conservan |
LOG_DEPRECATIONS_CHANNEL |
null |
A dónde van las deprecaciones de PHP y de paquetes; null las descarta |
LOG_DEPRECATIONS_TRACE |
false |
Incluir la traza con cada deprecación |
LOG_SLACK_WEBHOOK_URL |
ninguno | Webhook entrante para el canal slack |
LOG_SLACK_USERNAME |
Laravel Log |
Nombre del remitente en Slack |
LOG_SLACK_EMOJI |
:boom: |
Icono del remitente en Slack |
SLACK_BOT_TOKEN |
ninguno | Token de bot para el canal slack_api |
SLACK_LOG_CHANNEL |
#errores |
Canal de Slack al que publica el canal slack_api |
PAPERTRAIL_URL |
ninguno | Host de Papertrail |
PAPERTRAIL_PORT |
ninguno | Puerto de Papertrail |
LOG_PAPERTRAIL_HANDLER |
SyslogUdpHandler de Monolog |
Clase del handler para el canal papertrail |
LOG_STDERR_FORMATTER |
ninguno | Clase del formateador para el canal stderr, usado en contenedores |
LOG_SYSLOG_FACILITY |
LOG_USER |
Facility para el canal syslog |
Herramientas de desarrollo
Las leen config/debugbar.php y config/querydetector.php. Los dos paquetes son dependencias de desarrollo y se encienden solos cuando APP_DEBUG es true; estas variables lo sobreescriben.
| Variable | Valor por omisión | Para qué |
|---|---|---|
DEBUGBAR_ENABLED |
sigue a APP_DEBUG |
Forzar la Debugbar encendida o apagada |
DEBUGBAR_OPEN_STORAGE |
false |
Dejar que cualquiera abra las peticiones guardadas |
DEBUGBAR_EDITOR |
phpstorm |
Editor en el que abren los enlaces a archivos |
DEBUGBAR_REMOTE_SITES_PATH, DEBUGBAR_LOCAL_SITES_PATH |
vacío | Mapear rutas del contenedor a tu máquina para que los enlaces a archivos resuelvan |
DEBUGBAR_THEME |
auto |
auto, light o dark |
QUERY_DETECTOR_ENABLED |
sigue a APP_DEBUG |
Forzar el detector de N+1 encendido o apagado |
QUERY_DETECTOR_THRESHOLD |
1 |
Consultas repetidas antes de reportar |
QUERY_DETECTOR_LOG_CHANNEL |
daily |
A dónde escribe cuando su salida es el log |
Más en Trabaja en el código.
Variables que pertenecen a una función
Estas también las lee config/, así que van en este archivo, pero el significado de cada valor se explica en la guía de su función.
Inicio de sesión y verificación, leídas por config/auth.php y config/services.php. Ve Configura el inicio de sesión y el registro, Verifica correo y teléfono y El PIN de seguridad.
| Variable | Valor por omisión |
|---|---|
AUTH_APPROACH |
CreationValidation |
AUTH_LOGIN_STEPS |
one |
AUTH_ENABLE_REGISTER |
true |
AUTH_ENABLE_VALIDATION |
true |
AUTH_ENABLE_PIN |
false |
LOGIN_IDENTITIES |
email |
AUTH_VALIDATION_PROVIDER |
aws |
TELNYX_API_KEY |
ninguno; cae al nombre anterior TELNYX_TOKEN |
TELNYX_VERIFY_PROFILE_ID |
ninguno |
AUTH_PASSWORD_TIMEOUT |
10800 segundos antes de que expire una confirmación de contraseña |
AUTH_GUARD, AUTH_PASSWORD_BROKER, AUTH_MODEL, AUTH_PASSWORD_RESET_TOKEN_TABLE |
web, users, App\Models\User, password_reset_tokens: Laravel estándar, sin razón para cambiarlas |
Banderas de funciones, leídas por config/features.php. Ve Configura tu proyecto; los valores de referidos se explican en Referidos.
| Variable | Valor por omisión |
|---|---|
FEATURE_PLANS_ENABLED |
false |
FEATURE_ADDONS_ENABLED |
false |
FEATURE_ANNOUNCEMENTS |
false |
FEATURE_TRACKING_ENABLED |
false |
FEATURE_REFERRALS_ENABLED |
false |
FEATURE_REFERRALS_REGISTRATION_REWARD |
10 |
FEATURE_REFERRALS_SUBSCRIPTION_REWARD_PERCENT |
10 |
FEATURE_REFERRALS_CURRENCY |
mxn |
FEATURE_REFERRALS_COOKIE_DAYS |
30 |
Stripe y cobros, leídas por config/services.php, config/pricing.php, el billing-core.php del paquete de cobros y la configuración propia de Laravel Cashier. Ve Enciende planes y cobros y Pruebas gratuitas y cupones.
| Variable | Valor por omisión |
|---|---|
STRIPE_KEY |
ninguno |
STRIPE_SECRET |
ninguno |
STRIPE_WEBHOOK_SECRET |
ninguno |
BILLING_CORE_ENABLED |
true |
BILLING_USER_ENABLED |
true |
BILLING_SUITE_ENABLED |
nombrada en un bloque de adaptador comentado de billing-core.php; nada la lee hasta que descomentes ese bloque y escribas la clase del adaptador |
BILLING_COUPONS_ENABLED |
true |
BILLING_FREE_TRIAL_ENABLED |
false |
BILLING_FREE_TRIAL_DAYS |
14 |
CASHIER_CURRENCY |
usd, leída por Cashier mismo; la moneda propia del paquete de cobros es el primary_currency committeado en config/pricing.php, mxn |
CASHIER_CURRENCY_LOCALE, CASHIER_PATH, CASHIER_WEBHOOK_TOLERANCE, CASHIER_LOGGER |
propias de Cashier: en, stripe, 300, ninguno |
Web push y la PWA, leídas por config/webpush.php y config/app.php. Ve Web push y la PWA.
| Variable | Valor por omisión |
|---|---|
APP_PWA |
false |
VAPID_SUBJECT |
APP_URL |
VAPID_PUBLIC_KEY, VAPID_PRIVATE_KEY |
ninguno; php artisan webpush:vapid las imprime |
VAPID_PEM_FILE |
ninguno; una alternativa a las dos llaves |
WEBPUSH_DB_TABLE |
push_subscriptions |
WEBPUSH_DB_CONNECTION |
DB_CONNECTION |
WEBPUSH_AUTOMATIC_PADDING |
true |
Proveedores de IA, leídas por config/ai.php. El traductor usa el proveedor nombrado en el default committeado, que es openai, así que OPENAI_API_KEY es la que importa a menos que cambies esa llave. Ve Conecta un proveedor de IA.
| Variable | Valor por omisión |
|---|---|
OPENAI_API_KEY |
ninguno |
OPENAI_URL |
https://api.openai.com/v1 |
ANTHROPIC_API_KEY |
ninguno |
ANTHROPIC_URL |
https://api.anthropic.com/v1 |
GEMINI_API_KEY |
ninguno |
GEMINI_URL |
https://generativelanguage.googleapis.com/v1beta/ |
AZURE_OPENAI_API_KEY, AZURE_OPENAI_URL |
ninguno |
AZURE_OPENAI_API_VERSION |
2025-04-01-preview |
AZURE_OPENAI_DEPLOYMENT |
gpt-4o |
AZURE_OPENAI_EMBEDDING_DEPLOYMENT |
text-embedding-3-small |
AZURE_OPENAI_IMAGE_DEPLOYMENT |
gpt-image-1 |
AWS_BEDROCK_REGION |
us-east-1 |
AWS_BEARER_TOKEN_BEDROCK, AWS_SESSION_TOKEN |
ninguno |
AWS_USE_DEFAULT_CREDENTIALS |
true |
COHERE_API_KEY, DEEPSEEK_API_KEY, ELEVENLABS_API_KEY, GROQ_API_KEY, JINA_API_KEY, MISTRAL_API_KEY, OPENROUTER_API_KEY, VOYAGEAI_API_KEY, XAI_API_KEY |
ninguno |
OLLAMA_API_KEY |
vacío; Ollama no necesita llave |
OLLAMA_URL |
http://localhost:11434 |
Detección de país, leídas por config/services.php y config/app.php. Ve Detecta el país del visitante.
| Variable | Valor por omisión |
|---|---|
WEBLABOR_WORLD_TOKEN |
ninguno; sin él el país igual se detecta por la IP, pero nada se consulta en Weblabor World |
WEBLABOR_WORLD_ENDPOINT |
https://world.weblabor.mx/api, leída por el paquete World UI y no por config/ |
COUNTRY_CODE_FALLBACK |
US |
Seguimiento, leídas por config/services.php y config/features.php. Ve Seguimiento y analítica.
| Variable | Valor por omisión |
|---|---|
FEATURE_TRACKING_ENABLED |
false |
FACEBOOK_ACCESS_TOKEN, FACEBOOK_PIXEL_ID |
ninguno; hacen falta las dos antes de que un evento se mande a Facebook |
FACEBOOK_TEST_EVENT_CODE |
ninguno |
Registro de actividad, leídas por config/activitylog.php. Ve Registro de actividad.
| Variable | Valor por omisión |
|---|---|
ACTIVITY_LOGGER_ENABLED |
true |
ACTIVITY_LOGGER_DB_CONNECTION |
la conexión predeterminada |
El botón de despliegue de la DevZone, el único lugar donde una variable se lee directo de .env en vez de a través de config/. Ve La DevZone.
| Variable | Valor por omisión |
|---|---|
GIT_USER, GIT_PASSWORD |
ninguno; el despliegue en /admin/dev se niega a hacer pull hasta que las dos estén puestas, y las usa como credenciales de Git para git pull |
Después de cambiar un valor
Una aplicación corriendo lee .env en cada petición sólo mientras la configuración no está cacheada. Después de php artisan config:cache, que todo despliegue debería correr, un cambio en .env no hace nada hasta que lo vuelvas a correr o lo limpies con php artisan config:clear. El worker de la cola también guarda su propia copia: reinícialo con php artisan queue:restart después de cualquier cambio que deba ver.