# This file is a "template" of which env vars need to be defined for your application.
# Copy this file as .env in the project root folder, and replace the values with your own settings.
# This version contains all possible variables required to run your own YAFFA instance.
# These are grouped into sections, especially highlighting the most important, fundamental ones.

###############################
### Basic app configuration ###
###############################

# Encryption key used to encrypt session and other data
# You can use the "php artisan key:generate" command to generate a random key, which will overwrite this value
# Make sure to keep this key secret, and don't share it with anyone.
# Also, don't change it after you have started using the application.
APP_KEY=PleaseReplaceThisWithARandomStringOf32Chars

### Database configuration ###
DB_CONNECTION=mysql
# Use localhost or 127.0.0.1 for the host, if the database is running on the same server as the application
DB_HOST=127.0.0.1
# Use the name of the database service, if the database is running in a Docker container. This is 'db' in the default Docker setup of YAFFA.
# DB_HOST=db
DB_PORT=3306
DB_DATABASE=yaffa_db
DB_USERNAME=yaffa_user
DB_PASSWORD=yaffa_password
DB_SOCKET=

### Application behavior and settings ###

# The maximum number of users that can be registered in the system.
# For a personal instance, you can set this to 1 to prevent other people from registering.
# Increase this value if you want to allow other users to register, or set it to empty to allow unlimited registrations.
REGISTERED_USER_LIMIT=1

# Do new users have to verify their email address before they can log in?
# For a local, personal instance, without access to outgoing emails, this should be set to false.
# For a public instance, this should probably be set to true, but you need to configure the email settings below according to your server setup.
EMAIL_VERIFICATION_REQUIRED=FALSE

# The email address of the administrator of the system, who will receive notifications about new users, logins, etc.
# Leave this empty if you don't want to receive any notifications
ADMIN_EMAIL=

### Define the configuration for sending emails ###
# This is needed if you want your users to verify their email addresses,
# or if you want to receive notifications about new users, etc.
MAIL_MAILER=log
MAIL_HOST=
MAIL_PORT=
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=info@yaffa.test
MAIL_FROM_NAME=YAFFA

# The URL of the application, used for generating links in emails and to set the base URL for the application
APP_URL=http://localhost

# Domain settings for cookies and sessions
# These settings are required if you are running the application on a different port or subdomain
#SANCTUM_STATEFUL_DOMAINS=yoursubdomain.yourdomain.com:yourport
#SESSION_DOMAIN=.yourdomain.com

#############################
### Advanced app features ###
#############################

### Configuration of external services ###
# Your key for the Alpha Vantage API, which is used to fetch stock prices
ALPHA_VANTAGE_KEY=

# Your configuration for the Mailbox service, which is used to receive emails
MAILBOX_DRIVER=sendgrid
MAILBOX_HTTP_PASSWORD=

# The email address where incoming receipts are sent, and which is monitored by the Mailbox service
INCOMING_RECEIPTS_EMAIL=

# Your OpenAI key, which is used when AI is asked to process incoming email receipts
# Note: this will be used by all users, so make sure to use a key that has enough capacity or billing cap to prevent abuse
# Related note: this should be moved to a per-user setting in the future
OPENAI_API_KEY=

############################################################################################
### The values below should be left as is, unless you really need to use custom settings ###
############################################################################################

# The name of the application, used in the UI
APP_NAME=YAFFA

# The environment in which the application is running
# Set to "production" for general use, or "local" for development
APP_ENV=production

### Logging and debugging configuration ###
# This is relevant, if you encounter any issues with the application, and you would like to see detailed error messages

# Set this to true if you need to see detailed error messages
APP_DEBUG=false

# You can specify the log channel to be used for logging
LOG_CHANNEL=stack

# The minimum log level to be written to the log files
LOG_LEVEL=error

### Internal tools and services ###
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=database
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

# Enlightn - optional, if you want to run the Enlightn security checks and save the results to their online dashboard
ENLIGHTN_USERNAME=
ENLIGHTN_API_TOKEN=

# Sentry - optional, if you want to use Sentry for error reporting
SENTRY_LARAVEL_DSN=
SENTRY_TRACES_SAMPLE_RATE=

#####################################################################################
### The settings below are used by the special, public-facing Sandbox environment ###
#####################################################################################
# You probably won't need them, and can leave them as is
# Feel free to provide your own values, if you need any of these features

# General flag to enable/disable some custom behavior or the Sandbox environment
SANDBOX_MODE=FALSE

# Recaptcha - used to prevent spam and abuse on the login and registration forms
RECAPTCHA_SITE_KEY=
RECAPTCHA_SECRET_KEY=

# Google Tag Manager - used for tracking and analytics
GTM_CONTAINER_ID=

# CookieYes - used for cookie consent management, related to tracking and analytics
COOKIEYES_ID=

#######################################################################################################
### The settings below are related to development and testing, and should not be used in production ###
#######################################################################################################

# Translation sheet settings
TS_SERVICE_ACCOUNT_EMAIL=
TS_SERVICE_ACCOUNT_CREDENTIALS_FILE=
TS_SPREADSHEET_ID=
TS_LOCALES=

# Laravel Sail settings
WWWGROUP=1000
WWWUSER=1000
APP_SERVICE=yaffa.test
SAIL_XDEBUG_ENABLED=false
SAIL_XDEBUG_PORT=9003
SAIL_XDEBUG_MODE=develop,debug
SAIL_XDEBUG_CONFIG="client_host=host.docker.internal"

# Telescope should not be enabled, unless Composer dev dependencies are installed
TELESCOPE_ENABLED=FALSE

# Debugbar should not be enabled, unless Composer dev dependencies are installed
DEBUGBAR_ENABLED=FALSE
DEBUGBAR_OPEN_STORAGE=