All runtime configuration for Sistema de Admisión Web is managed through a singleDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/ariellukezz/admision-web/llms.txt
Use this file to discover all available pages before exploring further.
.env file in the project root. Laravel reads these values at boot time and exposes them to the application via the env() helper and the /config directory. No sensitive credentials are ever hard-coded in source files — every integration key, database password, and service URL belongs in .env and nowhere else.
Application Settings
These variables control the core Laravel application identity, runtime mode, and public URL.The human-readable name of the application. Used in email templates, the browser title bar, and anywhere the application identifies itself. Set this to something like
"Admisión Web - UNAP" for your institution.The environment the application is running in. Accepted values are
local, staging, and production. Laravel uses this to toggle features such as detailed error pages (enabled in local, disabled in production).The application encryption key. Must not be empty. Generate it with
php artisan key:generate. The value is a base64-encoded 32-byte random string prefixed with base64:.When
true, full stack traces and debug information are displayed on error pages. Set to false in production environments to avoid leaking implementation details to end users.The fully qualified public URL of the application, including the scheme. Used by Laravel to generate absolute URLs (e.g., in emails and signed routes). Example:
https://admision.unap.edu.pe.Logging
These variables configure how Laravel writes application logs. Logs capture errors, deprecation warnings, and debug output from all layers of the application.The default logging channel.
stack aggregates multiple channels (defined in config/logging.php). Other common values: single (one file), daily (rotated daily), stderr (for containerised deployments).The channel used to log PHP and Laravel deprecation notices. Set to
null to discard deprecation messages, or point it to a named channel (e.g., daily) to capture them during upgrades.The minimum severity level that will be written to the log. Valid values follow the RFC 5424 scale:
debug, info, notice, warning, error, critical, alert, emergency. In production, set to error or warning to reduce log volume.Database
Sistema de Admisión Web uses MySQL as its primary datastore. All Eloquent models, migrations, and raw queries target the connection defined here.The database driver. The platform is built and tested against
mysql. Changing this to another driver (e.g., pgsql) would require reviewing raw SQL in controllers and migrations.Hostname or IP address of the MySQL server. Use
127.0.0.1 for a local instance or the internal hostname of your managed database service.TCP port on which the MySQL server is listening. The default MySQL port is
3306.Name of the MySQL database to connect to. Create this database before running
php artisan migrate. Example: admision_web.MySQL username with
SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, and INDEX privileges on DB_DATABASE.Password for
DB_USERNAME. Leave empty only if the MySQL user has no password (common in local Docker setups).Cache, Queue & Session
These variables control where Laravel stores cached data, how background jobs are dispatched, and how user sessions are persisted.The cache backend.
file stores cache entries in storage/framework/cache. Switch to redis for distributed caching across multiple app servers.The default filesystem disk used for file storage operations.
local stores files under storage/app. Switch to s3 to store uploads in an AWS S3 bucket (requires the AWS_* variables below).Where queued jobs are stored.
database uses the jobs table (created by php artisan migrate). Switch to redis for higher throughput in production.How user sessions are stored.
file stores sessions in storage/framework/sessions. Use redis or database for multi-server deployments where sticky sessions are not available.Number of minutes before an idle session expires. After this period, unauthenticated users are redirected to the login page.
Redis
Redis is used as a drop-in backend for cache, queue, and session storage whenCACHE_DRIVER, QUEUE_CONNECTION, or SESSION_DRIVER are set to redis. The predis/predis ^3.4 package handles the connection.
Hostname or IP address of the Redis server.
Redis authentication password. Set to
null (the literal string) if your Redis instance does not require a password — this is the Laravel convention for “no password”.TCP port on which Redis is listening. The default Redis port is
6379.Memcached
Memcached can be used as an alternative cache backend whenCACHE_DRIVER=memcached.
Hostname or IP address of the Memcached server. Only required when
CACHE_DRIVER is set to memcached.1025.
The mail transport driver. Common values:
smtp, sendmail, mailgun, ses, postmark, log (discards all mail, useful in testing).SMTP server hostname. In production, replace
mailpit with your SMTP provider’s host (e.g., smtp.gmail.com, smtp.mailgun.org).SMTP port. Common values:
25 (unauthenticated), 465 (SSL), 587 (STARTTLS), 1025 (Mailpit local catcher).SMTP authentication username. Set to
null if the SMTP server does not require authentication (e.g., Mailpit).SMTP authentication password. Set to
null if unused.Transport encryption. Use
tls for port 587 (STARTTLS) or ssl for port 465. Set to null for unencrypted connections.The
From: email address for all outbound mail. Set this to a real, deliverable address at your institution (e.g., noreply@admision.unap.edu.pe).The
From: display name. Defaults to the value of APP_NAME. Shown as the sender name in email clients.Firebase
Firebase is used for Cloud Messaging (FCM) push notifications delivered to applicants when their document review status changes. Thekreait/firebase-php ^7.24 SDK on the backend reads these variables via config/firebase.php.
The Firebase project identifier. Found in the Firebase Console under Project Settings → General → Project ID.
Absolute path to the Firebase service-account JSON credentials file. Download this file from Firebase Console → Project Settings → Service Accounts → Generate new private key and place it at
storage/app/firebase-credentials.json.The Firebase Cloud Messaging sender ID. Used by the client-side Firebase SDK to associate push subscriptions with your project.
The Firebase Web API Key. Found in Firebase Console → Project Settings → General → Web API Key. Used by the frontend Firebase SDK for initialisation.
The Firebase App ID for the registered web application. Found in Firebase Console → Project Settings → Your apps → App ID.
The Firebase Authentication domain. Used by the Firebase client SDK for OAuth redirects.
The Firebase Cloud Storage bucket name. Used if Firebase Storage is enabled for the project.
The VAPID public key for Web Push. Generated in Firebase Console → Project Settings → Cloud Messaging → Web Push certificates. Required for FCM to deliver push notifications to browser clients.
Broadcasting
Broadcasting powers real-time frontend updates. TheBROADCAST_DRIVER and Pusher variables are used when live event broadcasting is enabled.
The broadcasting backend.
log writes events to the log file (no real-time delivery). Set to pusher to enable real-time WebSocket broadcasting via Pusher or a Pusher-compatible server like Soketi.The Pusher application ID. Provided by Pusher (or your Soketi configuration).
The Pusher application key. Also surfaced to the frontend as
VITE_PUSHER_APP_KEY.The Pusher application secret. Used by the server to sign channel authentication responses. Keep this value private.
The WebSocket server hostname. Leave empty to use Pusher’s hosted infrastructure. Set to your Soketi server hostname for self-hosted deployments. Also surfaced as
VITE_PUSHER_HOST.The WebSocket server port.
443 is standard for TLS WebSocket connections. Also surfaced as VITE_PUSHER_PORT.The connection scheme (
https or http). Use https in production. Also surfaced as VITE_PUSHER_SCHEME.The Pusher cluster region (e.g.,
mt1, us2, eu). Ignored when using a self-hosted Soketi server. Also surfaced as VITE_PUSHER_APP_CLUSTER.Vite Frontend Variables
These variables are prefixed withVITE_ so that Vite exposes them to the frontend JavaScript bundle at build time. They mirror their server-side Pusher counterparts and are used by the Laravel Echo / Pusher JS client in the browser.
Mirrors
PUSHER_APP_KEY. Injected into the Vite build as import.meta.env.VITE_PUSHER_APP_KEY for the browser-side Pusher client.Mirrors
PUSHER_HOST. Used by the frontend WebSocket client to connect to the correct host.Mirrors
PUSHER_PORT. Used by the frontend WebSocket client.Mirrors
PUSHER_SCHEME. Determines whether the browser opens a wss:// (https) or ws:// (http) WebSocket connection.Mirrors
PUSHER_APP_CLUSTER. Used by the browser Pusher client to route to the correct regional cluster.AWS (S3 / SES)
These variables enable AWS S3 file storage and/or Amazon SES as the mail transport. They are also read byconfig/services.php for the ses driver.
AWS IAM access key ID. The IAM user or role must have
s3:PutObject, s3:GetObject, and s3:DeleteObject permissions on AWS_BUCKET, and ses:SendEmail if using SES.The secret key corresponding to
AWS_ACCESS_KEY_ID. Treat this value with the same care as a database password.The AWS region where your S3 bucket and/or SES sending identity are configured (e.g.,
us-east-1, sa-east-1).The S3 bucket name used for file storage when
FILESYSTEM_DISK=s3. Leave empty if using local or other storage drivers.When
true, the S3 client uses path-style URLs (https://s3.amazonaws.com/{bucket}/key) instead of virtual-hosted-style URLs (https://{bucket}.s3.amazonaws.com/key). Set to true when using S3-compatible services such as MinIO or LocalStack.