Skip to main content

Overview

Cashify uses environment variables to configure various aspects of the application. All configuration is managed through a .env file in the root directory of your Laravel installation.
Copy the .env.example file to .env and update the values according to your environment:
cp .env.example .env
php artisan key:generate

Core Application Settings

APP_NAME
string
default:"Laravel"
The name of your application. This value is used when the framework needs to display the application name in notifications or UI elements.
APP_NAME=Cashify
APP_ENV
string
default:"production"
required
The environment your application is running in. Common values are local, staging, or production.
APP_ENV=local
APP_KEY
string
required
A 32-character encryption key used by Laravel’s encryption services. Generate this using php artisan key:generate.
Never commit your APP_KEY to version control. This key is used to encrypt sensitive data.
APP_DEBUG
boolean
default:"false"
Enable detailed error messages with stack traces. Should be false in production.
APP_DEBUG=true  # Development only
APP_TIMEZONE
string
default:"UTC"
The default timezone for your application, used by PHP date and date-time functions.
APP_TIMEZONE=UTC
APP_URL
string
default:"http://localhost"
required
The URL of your application. Used by the console to generate URLs in Artisan commands.
APP_URL=https://cashify.space

Localization Settings

APP_LOCALE
string
default:"en"
The default locale for the application. Cashify supports en (English) and bg (Bulgarian).
APP_LOCALE=en
APP_FALLBACK_LOCALE
string
default:"en"
The fallback locale used when the current locale is not available.
APP_FALLBACK_LOCALE=en
APP_FAKER_LOCALE
string
default:"en_US"
The locale used by Faker for generating fake data in tests and seeders.

Security & Encryption

BCRYPT_ROUNDS
integer
default:"12"
The number of hashing rounds for bcrypt password encryption. Higher values increase security but require more processing time.
BCRYPT_ROUNDS=12

Database Configuration

DB_CONNECTION
string
default:"sqlite"
required
The database driver to use. Cashify defaults to SQLite but supports MySQL, PostgreSQL, and more.
DB_CONNECTION=sqlite

MySQL/MariaDB Configuration

When using MySQL or MariaDB, uncomment and configure these variables:
DB_HOST
string
default:"127.0.0.1"
The database server hostname.
DB_PORT
integer
default:"3306"
The database server port.
DB_DATABASE
string
default:"laravel"
The name of your database.
DB_USERNAME
string
default:"root"
The database username.
DB_PASSWORD
string
The database password.

Session Configuration

SESSION_DRIVER
string
default:"database"
required
Where session data should be stored. Options include file, cookie, database, memcached, redis, or array.
SESSION_DRIVER=database
SESSION_LIFETIME
integer
default:"120"
The number of minutes that sessions should remain valid.
SESSION_LIFETIME=120
SESSION_ENCRYPT
boolean
default:"false"
Whether session data should be encrypted.
SESSION_PATH
string
default:"/"
The session cookie path.
SESSION_DOMAIN
string
The session cookie domain.

Cache & Queue

CACHE_STORE
string
default:"database"
The default cache driver. Options include apc, array, database, file, memcached, redis, or dynamodb.
CACHE_STORE=database
CACHE_PREFIX
string
A prefix for cache keys to avoid collisions.
QUEUE_CONNECTION
string
default:"database"
The queue driver for background jobs. Options include sync, database, beanstalkd, sqs, or redis.
QUEUE_CONNECTION=database

Redis Configuration

REDIS_CLIENT
string
default:"phpredis"
The Redis client to use (phpredis or predis).
REDIS_HOST
string
default:"127.0.0.1"
The Redis server hostname.
REDIS_PASSWORD
string
The Redis server password.
REDIS_PORT
integer
default:"6379"
The Redis server port.

Mail Configuration

MAIL_MAILER
string
default:"mailtrap"
required
The mail driver to use. Cashify uses Mailtrap by default. Options include smtp, sendmail, mailgun, ses, postmark, log, or array.
MAIL_MAILER=mailtrap

Mailtrap Configuration

MAILTRAP_HOST
string
default:"send.api.mailtrap.io"
The Mailtrap API host.
MAILTRAP_API_KEY
string
required
Your Mailtrap API key for sending emails.
MAILTRAP_API_KEY=YOUR_API_KEY_HERE

SMTP Configuration

When using SMTP instead of Mailtrap:
MAIL_HOST
string
default:"127.0.0.1"
The SMTP server hostname.
MAIL_PORT
integer
default:"2525"
The SMTP server port.
MAIL_USERNAME
string
The SMTP username.
MAIL_PASSWORD
string
The SMTP password.
MAIL_ENCRYPTION
string
The SMTP encryption method (tls or ssl).

Mail Identity

MAIL_FROM_ADDRESS
string
required
The default “from” email address for outgoing emails.
MAIL_FROM_ADDRESS=[email protected]
MAIL_FROM_NAME
string
default:"${APP_NAME}"
The default “from” name for outgoing emails.
MAIL_FROM_NAME="${APP_NAME}"

OAuth & Third-Party Services

GitHub OAuth

GITHUB_CLIENT_ID
string
required
Your GitHub OAuth application’s client ID.
GITHUB_CLIENT_ID=your_github_client_id
Register a GitHub OAuth app at GitHub Developer Settings to obtain credentials.
GITHUB_CLIENT_SECRET
string
required
Your GitHub OAuth application’s client secret.
Keep this secret secure and never commit it to version control.
GITHUB_REDIRECT
string
required
The callback URL for GitHub OAuth authentication.
GITHUB_REDIRECT=https://yourdomain.com/auth/github/callback

Google OAuth (Optional)

GOOGLE_CLIENT_ID
string
Your Google OAuth application’s client ID (if using Google login).
GOOGLE_CLIENT_SECRET
string
Your Google OAuth application’s client secret.
GOOGLE_REDIRECT
string
The callback URL for Google OAuth authentication.

Cloudflare Turnstile

Cashify uses Cloudflare Turnstile for CAPTCHA protection on registration:
TURNSTILE_SITE_KEY
string
required
Your Cloudflare Turnstile site key.
TURNSTILE_SITE_KEY=your_site_key
TURNSTILE_SECRET_KEY
string
required
Your Cloudflare Turnstile secret key.
TURNSTILE_SECRET_KEY=your_secret_key
Get Turnstile keys from the Cloudflare Dashboard under “Turnstile”.

AWS Configuration (Optional)

AWS_ACCESS_KEY_ID
string
Your AWS access key ID (required for S3 storage or SES email).
AWS_SECRET_ACCESS_KEY
string
Your AWS secret access key.
AWS_DEFAULT_REGION
string
default:"us-east-1"
The AWS region to use.
AWS_BUCKET
string
The S3 bucket name for file storage.
AWS_USE_PATH_STYLE_ENDPOINT
boolean
default:"false"
Whether to use path-style endpoints for S3.

Storage & Broadcasting

FILESYSTEM_DISK
string
default:"local"
The default filesystem disk for file storage. Options include local, public, or s3.
FILESYSTEM_DISK=local
BROADCAST_CONNECTION
string
default:"log"
The broadcast driver for real-time events. Options include log, pusher, redis, or null.

Logging

LOG_CHANNEL
string
default:"stack"
The default log channel. Options include stack, single, daily, slack, syslog, or errorlog.
LOG_CHANNEL=stack
LOG_STACK
string
default:"single"
The log channels to include in the stack.
LOG_DEPRECATIONS_CHANNEL
string
The channel for logging deprecation warnings.
LOG_LEVEL
string
default:"debug"
The minimum log level to record. Options include debug, info, notice, warning, error, critical, alert, or emergency.

Maintenance Mode

APP_MAINTENANCE_DRIVER
string
default:"file"
The driver for storing maintenance mode status. Options are file or cache.
APP_MAINTENANCE_DRIVER=file
APP_MAINTENANCE_STORE
string
default:"database"
The cache store to use when the maintenance driver is set to cache.

Frontend Configuration

VITE_APP_NAME
string
default:"${APP_NAME}"
The application name exposed to Vite for use in frontend assets.
VITE_APP_NAME="${APP_NAME}"

Example Configuration

Here’s a complete example .env file for a production environment:
.env
APP_NAME=Cashify
APP_ENV=production
APP_KEY=base64:your-generated-key-here
APP_DEBUG=false
APP_TIMEZONE=UTC
APP_URL=https://cashify.space

APP_LOCALE=en
APP_FALLBACK_LOCALE=en

BCRYPT_ROUNDS=12

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=cashify
DB_USERNAME=cashify_user
DB_PASSWORD=secure_password_here

SESSION_DRIVER=database
SESSION_LIFETIME=120

CACHE_STORE=redis
QUEUE_CONNECTION=database

REDIS_CLIENT=phpredis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_MAILER=mailtrap
MAILTRAP_HOST=send.api.mailtrap.io
MAILTRAP_API_KEY=your_mailtrap_api_key
MAIL_FROM_ADDRESS=[email protected]
MAIL_FROM_NAME="${APP_NAME}"

GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_client_secret
GITHUB_REDIRECT=https://cashify.space/auth/github/callback

TURNSTILE_SITE_KEY=your_turnstile_site_key
TURNSTILE_SECRET_KEY=your_turnstile_secret_key

LOG_CHANNEL=stack
LOG_LEVEL=error

Next Steps

Authentication

Configure Laravel Breeze and OAuth providers

Localization

Set up multi-language support

Build docs developers (and LLMs) love