.env file at the project root. This file is never committed to version control — it exists only on the machine running the application. The .env.example file committed to the repository documents every variable the application reads, and serves as the authoritative template you copy when setting up a new environment.
To create your local configuration file, run:
.env with the values appropriate for your environment. The sections below document every variable, grouped by concern.
Application
These variables control the fundamental identity and runtime behavior of the Laravel application.string
default:"Laravel"
The human-readable name of the application. Laravel uses this value in notification messages, email subjects, and the
MAIL_FROM_NAME variable when it is set to "${APP_NAME}".string
default:"local"
Describes the current runtime environment. Common values are
local, staging, and production. Some Laravel behaviors (such as exception handling verbosity) change based on this value.string
required
A 32-character random string used by Laravel’s encrypter for AES-256-CBC encryption of cookies, sessions, and other sensitive data. The application will throw a runtime exception if this value is empty. Generate it with:
boolean
default:"true"
Controls whether Laravel renders full exception stack traces in the browser. Set to
false in any environment accessible by end users.string
default:"http://localhost"
The root URL of the application. Artisan uses this when generating URLs from the command line (e.g., in queued jobs or scheduled commands). Set this to your public domain in production.
Logging
These variables control how Laravel writes application logs.string
default:"stack"
The default log channel. The
stack driver aggregates multiple channels into one. Other built-in options include single, daily, stderr, and syslog.string
default:"null"
The channel used to log PHP and Laravel deprecation warnings. Set to
null to discard deprecation notices, or point it to a named channel to capture them separately.string
default:"debug"
The minimum severity level that Laravel will write to the log. Standard PSR-3 levels apply:
debug, info, notice, warning, error, critical, alert, and emergency. In production, set this to error or higher to reduce log noise.Database
Eventify requires a MySQL database. These variables configure the PDO connection that Laravel uses for all Eloquent queries, migrations, and seeders.string
default:"mysql"
The database driver. Eventify is built for and tested against
mysql. Changing this to another driver (e.g., pgsql) is not officially supported.string
default:"127.0.0.1"
The hostname or IP address of your MySQL server.
integer
default:"3306"
The TCP port MySQL is listening on. The default MySQL port is
3306.string
default:"laravel"
The name of the MySQL database Eventify will use. The
.env.example default is laravel; update this to your chosen database name. You must create the database before running migrations:string
default:"root"
The MySQL user that Laravel will authenticate as. The
.env.example default is root. Ensure this user has CREATE, ALTER, DROP, SELECT, INSERT, UPDATE, and DELETE privileges on DB_DATABASE.string
default:""
The password for
DB_USERNAME. The .env.example default is an empty string, which is common for a local root user with no password set. Set a strong password for any shared or production environment.File Storage
Eventify uses Laravel’s filesystem abstraction to store uploaded event cover images.string
default:"local"
The default storage disk. The
local driver stores files in storage/app. Uploaded event images are written to storage/app/public, which is exposed to the web via a symbolic link.After setting this variable, you must run
php artisan storage:link to create the public/storage → storage/app/public symlink. Without this symlink, uploaded event images will not be served by the web server.Cache & Session
string
default:"log"
The driver used for broadcasting real-time events. The default
log driver writes broadcast events to the application log without requiring any additional infrastructure. Switch to pusher or redis if you add real-time features.string
default:"file"
The cache backend Laravel uses for application caching. The default
file driver requires no additional infrastructure and stores cache entries in storage/framework/cache. For higher-traffic deployments, consider switching to redis or memcached.string
default:"file"
Where Laravel stores user session data. The
file driver persists sessions to storage/framework/sessions and is appropriate for single-server deployments. Switch to database or redis when running multiple application servers behind a load balancer.integer
default:"120"
How long a session remains valid, in minutes. After this period of inactivity, the user’s session expires and they are redirected to the login page. The default is
120 minutes (two hours).Queue
string
default:"sync"
The queue driver that Laravel dispatches background jobs to. The default
sync driver executes jobs immediately and inline within the current request — no separate worker process is required. This is suitable for development and low-traffic deployments.For production workloads where jobs (such as sending emails) should not block the HTTP response, switch to database (requires a jobs table migration) or redis.string
default:"smtp"
The mail transport driver. Common values are
smtp, sendmail, and log. Use log during development to write outgoing emails to the Laravel log instead of sending them.string
default:"mailpit"
The hostname of the SMTP server. The default
mailpit is a local mail-catching tool bundled with Laravel Sail. For production, replace this with your SMTP provider’s hostname (e.g., smtp.mailgun.org, smtp.sendgrid.net).integer
default:"1025"
The SMTP port. Common values are
587 (STARTTLS), 465 (SSL), and 25 (unencrypted). The default 1025 is the Mailpit local catch-all port.string
default:"null"
The username (often the sending email address) used to authenticate with the SMTP server. Leave
null for servers that do not require authentication.string
default:"null"
The password for
MAIL_USERNAME. Leave null if the SMTP server does not require authentication.string
default:"null"
The encryption protocol used for the SMTP connection. Set to
tls when using port 587 (STARTTLS) or ssl when using port 465. The default null sends mail without transport encryption, which is only appropriate for local catch-all tools like Mailpit.string
default:"hello@example.com"
The email address that appears in the
From: header of all outgoing mail sent by Eventify.string
default:"${APP_NAME}"
The sender name that appears alongside
MAIL_FROM_ADDRESS in the From: header. The default value "${APP_NAME}" dynamically inherits whatever you set for APP_NAME.