# THIS FILE MUST BE KEPT SECRET! IT IS BLOCKED IN THE HTACCESS FILE.
# HOWEVER, THIS DIRECTORY SHOULDN'T BE EXPOSED TO THE PUBLIC AT ALL.
# SEE THE DOCS FOR PROPER (SECURE) INSTALLATION:
# https://docs.phpvms.net/installation/uploading
#
# This is the place to edit your configuration. To change a config that's
# not present here, you need to either edit the file/config in the config
# folder, or change it to read the value from the environment. Something like:
#
# 'some_key' = env('ENVIRONMENT_VARIABLE_KEY_ADDED_BELOW', 'default value')
#
# Various other settings in the configs also read from some environment variables
# by default. You can override those here.

# =============================================================================
# APPLICATION CORE
# =============================================================================

# The name of your application, shown in notifications and UI elements.
APP_NAME=phpvms

# Application encryption key. Generate one at https://appkeyforlaravel.com
# phpVMS also uses this to detect if it has been installed.
APP_KEY=

# The full public URL of your installation, including the scheme (e.g. https://).
APP_URL=

# Environment type: production, local, staging, etc.
# In production, set this to "production".
APP_ENV=production

# Show detailed error messages with stack traces. DISABLE IN PRODUCTION.
APP_DEBUG=false

# Enable the Laravel Debugbar on every page. DISABLE IN PRODUCTION.
DEBUGBAR_ENABLED=false

# =============================================================================
# LOCALIZATION
# =============================================================================

# Default application locale (language code).
APP_LOCALE=en

# Fallback locale when a translation is missing.
APP_FALLBACK_LOCALE=en

# Locale used by Faker when generating fake data.
APP_FAKER_LOCALE=en_US

# =============================================================================
# DATABASE
# =============================================================================

# Database driver: mysql, mariadb, pgsql, sqlite, sqlsrv.
DB_CONNECTION=mysql

# Host address of the database server.
DB_HOST=127.0.0.1

# Port the database server listens on.
DB_PORT=3306

# Name of the database to use.
DB_DATABASE=phpvms

# Database user credentials.
DB_USERNAME=
DB_PASSWORD=

# Optional table prefix (uncomment if needed).
# DB_PREFIX=''

# =============================================================================
# PAGINATION
# =============================================================================

# Default number of items per page for paginated endpoints.
PHPVMS_PAGINATION_LIMIT=50

# Hard cap on the number of items per page (prevents oversized API requests).
PHPVMS_PAGINATION_MAX=100

# =============================================================================
# CACHE
# =============================================================================

# Default cache store: file, database, redis, memcached, dynamodb, array.
CACHE_STORE=file

# =============================================================================
# SESSION
# =============================================================================

# Session driver: file, cookie, database, redis, memcached, dynamodb, array.
SESSION_DRIVER=file

# Minutes a session can remain idle before expiring.
SESSION_LIFETIME=120

# Encrypt all session data before storage.
SESSION_ENCRYPT=false

# Path the session cookie is available on.
SESSION_PATH=/

# Domain the session cookie is available to (null = current domain).
SESSION_DOMAIN=null

# =============================================================================
# QUEUE
# =============================================================================

# Queue connection: sync, database, redis, beanstalkd, sqs.
# "database" or "redis" is recommended for production.
QUEUE_CONNECTION=database

# If true, queued jobs run during the cron instead of via a dedicated worker.
# Only use this on shared hosting where you cannot run queue:work.
RUN_QUEUED_JOBS_IN_CRON=false

# =============================================================================
# BROADCASTING
# =============================================================================

# Broadcasting driver: log, pusher, ably, redis, null.
BROADCAST_CONNECTION=log

# =============================================================================
# FILESYSTEM
# =============================================================================

# Default storage disk: local, public, s3, r2, sftp.
FILESYSTEM_DISK=local

# =============================================================================
# REDIS
# =============================================================================

# Redis client library: phpredis or predis.
REDIS_CLIENT=phpredis

# Redis server connection details.
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

# =============================================================================
# LOGGING
# =============================================================================

# Maintenance mode driver: file or cache.
APP_MAINTENANCE_DRIVER=file

# Minimum log level: debug, info, notice, warning, error, critical, alert, emergency.
LOG_LEVEL=info

# Comma-separated list of log channels (e.g. "daily,slack").
# See config/logging.php for available channels.
LOG_STACK=daily

# How many days daily log files are kept.
LOG_DAILY_DAYS=7

# =============================================================================
# MAIL
# =============================================================================

# Mail transport: smtp, sendmail, mailgun, ses, postmark, resend, log, array.
MAIL_MAILER=log

# Connection scheme for SMTP (e.g. tls, ssl, null).
MAIL_SCHEME=null

# SMTP server host and port.
MAIL_HOST=127.0.0.1
MAIL_PORT=2525

# SMTP authentication credentials.
MAIL_USERNAME=null
MAIL_PASSWORD=null

# The "From" address and name for all outgoing emails.
MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="${APP_NAME}"

# =============================================================================
# AWS / S3
# =============================================================================

# AWS credentials used for S3, SES, SQS, and DynamoDB.
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false

# =============================================================================
# FRONTEND
# =============================================================================

# Injected into the Vite build manifest as the app name.
VITE_APP_NAME="${APP_NAME}"

# =============================================================================
# ADMIN / phpVMS SPECIFIC
# =============================================================================

# Enable SPA-style prefetching in the Filament admin panel.
# Speeds up navigation but uses more bandwidth.
# https://filamentphp.com/docs/4.x/panel-configuration#enabling-spa-prefetching
USE_PREFETCHING_IN_ADMIN=false

# =============================================================================
# MISC / SECURITY
# =============================================================================

# Number of hashing rounds for password hashing.
BCRYPT_ROUNDS=12

# =============================================================================
# DEVELOPMENT (Laravel Sail / Docker)
# =============================================================================

# Host user and group IDs for file ownership inside Sail containers.
WWWUSER=1000
WWWGROUP=1000

# Sail compose file override.
SAIL_FILES="compose.sail.yml"

# Optional: expose different ports on the host.
# FORWARD_HTTP_PORT=8080
# FORWARD_HTTPS_PORT=8443
# FORWARD_DB_PORT=3307
