Documentation Index
Fetch the complete documentation index at: https://mintlify.com/AlexQuintana147/EducaPeru/llms.txt
Use this file to discover all available pages before exploring further.
All runtime configuration for EducaPerú is managed through the .env file located at the root of the project. This file is never committed to version control — it is created locally by copying .env.example (either automatically by composer setup or manually with cp .env.example .env). Edit it freely to match your local or production environment.
Never set APP_DEBUG=true in a production environment. When debug mode is on, detailed exception stack traces, environment variables, and configuration values are rendered directly in the browser. This can expose sensitive credentials and internal application structure to end users.
Application
These variables control the fundamental identity and behaviour of the Laravel application.
| Variable | Default | Description |
|---|
APP_NAME | Laravel | The display name of the application, used in notifications, email subjects, and the browser title. |
APP_ENV | local | The current environment. Accepted values: local, staging, production. Affects logging, caching, and error handling behaviour. |
APP_KEY | (empty) | A 32-character base64-encoded encryption key generated by php artisan key:generate. Required — the app will refuse to boot without it. |
APP_DEBUG | true | When true, detailed error pages with full stack traces are shown. Must be false in production. |
APP_URL | http://localhost | The full base URL of your application, including the scheme. Used to generate absolute URLs in emails and console commands. |
APP_LOCALE | en | The default locale for translations and date formatting. |
APP_FALLBACK_LOCALE | en | The locale used when a translation key is missing from APP_LOCALE. |
APP_FAKER_LOCALE | en_US | The locale used by Faker when generating seed data in database factories. |
APP_MAINTENANCE_DRIVER | file | Storage backend for maintenance-mode state. Use file (default) or database if running multiple server nodes. |
BCRYPT_ROUNDS | 12 | The number of bcrypt hashing rounds used when storing passwords. Higher values increase security but slow down hashing. |
Logging
Laravel’s logging stack is powered by Monolog. These variables control which channels receive log output and the minimum severity level that is recorded.
| Variable | Default | Description |
|---|
LOG_CHANNEL | stack | The default logging channel. stack aggregates multiple channels defined in config/logging.php. |
LOG_STACK | single | When LOG_CHANNEL=stack, this comma-separated list specifies which channels are stacked together (e.g. single, daily, slack). |
LOG_DEPRECATIONS_CHANNEL | null | Channel that receives PHP and Laravel deprecation notices. Set to null to discard them. |
LOG_LEVEL | debug | Minimum severity level to log. Standard levels from lowest to highest: debug, info, notice, warning, error, critical, alert, emergency. |
Database
EducaPerú defaults to SQLite, which requires no server and no credentials. Switch to MySQL or PostgreSQL by changing DB_CONNECTION and uncommenting the related variables.
With the default SQLite configuration, no database server is needed at all. Laravel automatically creates the database file at database/database.sqlite the first time you run php artisan migrate. This makes local onboarding instant.
| Variable | Default | Description |
|---|
DB_CONNECTION | sqlite | The database driver to use. Supported values: sqlite, mysql, pgsql, sqlsrv. |
DB_HOST | 127.0.0.1 | The hostname of your database server. Required for mysql, pgsql, and sqlsrv. |
DB_PORT | 3306 | The port your database server listens on. Default is 3306 for MySQL; use 5432 for PostgreSQL. |
DB_DATABASE | laravel | The name of the database to connect to, or the absolute/relative path to the SQLite file. |
DB_USERNAME | root | The database user. Not required for SQLite. |
DB_PASSWORD | (empty) | The database password. Not required for SQLite. |
Session & Cache
These variables control how user sessions, application cache, and queued jobs are persisted.
| Variable | Default | Description |
|---|
SESSION_DRIVER | database | Storage backend for sessions. Options: database, file, cookie, redis, array. |
SESSION_LIFETIME | 120 | Number of minutes of inactivity before a session is considered expired. |
SESSION_ENCRYPT | false | When true, session data is encrypted at rest using APP_KEY. |
SESSION_PATH | / | The path for which the session cookie is valid. Use / to make it available across the entire application. |
SESSION_DOMAIN | null | The domain the session cookie is available to. null defaults to the current request host. |
CACHE_STORE | database | The default cache store. Options: database, file, redis, memcached, array. |
QUEUE_CONNECTION | database | The queue driver. Options: database, sync, redis, beanstalkd, sqs. Use sync to process jobs immediately without a worker. |
Broadcast, Filesystem & Queue
These variables control real-time event broadcasting, file storage, and the queue connection used across the application.
| Variable | Default | Description |
|---|
BROADCAST_CONNECTION | log | Driver used to broadcast server-side events to clients. Options: log, pusher, ably, redis, null. The log driver writes events to the log file instead of broadcasting them live. |
FILESYSTEM_DISK | local | The default storage disk. Options: local (private, under storage/app), public (web-accessible), s3 (AWS S3). |
Mail
Email sending is configured through the MAIL_* variables. The default log mailer writes all outgoing emails to the Laravel log instead of sending them — ideal for local development.
| Variable | Default | Description |
|---|
MAIL_MAILER | log | The mail transport to use. Options: log, smtp, sendmail, mailgun, ses, postmark. |
MAIL_SCHEME | null | The encryption scheme for SMTP connections. Accepted values: null (auto-detect), ssl, tls. Set to ssl when using port 465. |
MAIL_HOST | 127.0.0.1 | Hostname of the SMTP server. Only used when MAIL_MAILER=smtp. |
MAIL_PORT | 2525 | Port of the SMTP server. Common values: 25, 465 (SSL), 587 (STARTTLS), 2525. |
MAIL_USERNAME | null | SMTP authentication username. |
MAIL_PASSWORD | null | SMTP authentication password. |
MAIL_FROM_ADDRESS | hello@example.com | The email address that appears in the From field of all outgoing messages. |
MAIL_FROM_NAME | ${APP_NAME} | The sender name that appears alongside MAIL_FROM_ADDRESS. Inherits APP_NAME by default. |
Redis
Redis can be used as the driver for cache, queues, and sessions. These variables are only required if you switch any of those services to use the redis driver.
| Variable | Default | Description |
|---|
REDIS_CLIENT | phpredis | The PHP Redis client library. Options: phpredis (requires the ext-redis PHP extension), predis (pure PHP, install via composer require predis/predis). |
REDIS_HOST | 127.0.0.1 | Hostname of the Redis server. |
REDIS_PASSWORD | null | Password for Redis authentication. Set to null if your Redis instance has no password. |
REDIS_PORT | 6379 | Port Redis is listening on. |
Memcached
Memcached is an alternative in-memory cache backend. These variables are only relevant when CACHE_STORE=memcached.
| Variable | Default | Description |
|---|
MEMCACHED_HOST | 127.0.0.1 | Hostname of the Memcached server. |
AWS
AWS credentials and S3 configuration are used when FILESYSTEM_DISK=s3 or when the SES mail driver is active. All values are intentionally left empty in .env.example and should be provided through a secrets manager or CI/CD environment in production.
| Variable | Default | Description |
|---|
AWS_ACCESS_KEY_ID | (empty) | Your AWS IAM access key ID. |
AWS_SECRET_ACCESS_KEY | (empty) | Your AWS IAM secret access key. Treat this like a password — never commit it to version control. |
AWS_DEFAULT_REGION | us-east-1 | The AWS region where your S3 bucket or SES endpoint is located. |
AWS_BUCKET | (empty) | The name of the S3 bucket to use for file storage when FILESYSTEM_DISK=s3. |
AWS_USE_PATH_STYLE_ENDPOINT | false | Set to true when using a path-style S3-compatible endpoint (e.g. MinIO, LocalStack). |
Vite / Frontend
| Variable | Default | Description |
|---|
VITE_APP_NAME | ${APP_NAME} | Exposes APP_NAME to client-side JavaScript via import.meta.env.VITE_APP_NAME. Inherits the value of APP_NAME automatically. |