Skip to content

Environment Variables

This page documents every environment variable Marketix reads, grouped by concern. Variables marked with a default come from .env.example; the configuration-only keys section covers additional keys that are read exclusively through config/*.php and have no entry in the sample file.

VariableDefaultDescription
APP_NAMELaravelApplication name shown in the UI and emails.
APP_ENVlocalRuntime environment (local, production, staging). The .env.example default is local; if APP_ENV is unset, the code-level fallback in config/app.php is production.
APP_KEY(empty)32-byte application encryption key. Generate with php artisan key:generate.
APP_DEBUGtrueEnable detailed error pages. Set to false in production.
APP_URLhttp://localhostFull public URL of the app, including scheme. Used to generate absolute URLs.
APP_DOMAINlocalhostPrimary application hostname (without scheme). Used by routing and as Traefik’s Host() rule in docker-compose.yml.
APP_LOCALEenDefault application locale. Supported values: en, de, nl, fr.
APP_FALLBACK_LOCALEenLocale used when a translation key is missing for APP_LOCALE.
APP_FAKER_LOCALEen_USLocale used by Faker when generating seed data.
APP_MAINTENANCE_DRIVERfileDriver for maintenance-mode state (file or database).
BCRYPT_ROUNDS12Cost factor for Bcrypt password hashing.
LOG_CHANNELstackDefault log channel.
LOG_STACKsingleChannels included in the stack log channel.
LOG_DEPRECATIONS_CHANNELnullChannel for PHP/framework deprecation notices.
LOG_LEVELdebugMinimum log level (debug, info, warning, error, etc.).

The DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, and DB_PASSWORD variables are commented out in .env.example. The listed default values are the Laravel framework configuration defaults; uncomment these variables in .env when not using SQLite.

VariableDefaultDescription
DB_CONNECTIONsqliteDatabase driver (sqlite, mysql, pgsql).
DB_HOST127.0.0.1Database server hostname.
DB_PORT3306Database server port.
DB_DATABASElaravelDatabase name (or path for SQLite).
DB_USERNAMErootDatabase user.
DB_PASSWORD(empty)Database password.
VariableDefaultDescription
SESSION_DRIVERdatabaseSession storage driver (database, redis, file, etc.).
SESSION_LIFETIME120Session expiry in minutes.
SESSION_ENCRYPTfalseEncrypt session data at rest.
SESSION_PATH/Cookie path scope.
SESSION_DOMAINnullCookie domain scope; null means the current hostname.
CACHE_STOREdatabaseDefault cache store (database, redis, file, etc.).
MEMCACHED_HOST127.0.0.1Memcached server hostname. Only used if CACHE_STORE is set to memcached (Laravel scaffolding default; Marketix defaults to database or Redis).
QUEUE_CONNECTIONdatabaseDefault queue connection (database, redis, sync).
BROADCAST_CONNECTIONlogDefault broadcast driver.
FILESYSTEM_DISKlocalDefault filesystem disk (local, s3).
VariableDefaultDescription
REDIS_CLIENTphpredisPHP Redis client library (phpredis or predis).
REDIS_HOST127.0.0.1Redis server hostname.
REDIS_PASSWORDnullRedis server password. Leave null when authentication is disabled.
REDIS_PORT6379Redis server port.
VariableDefaultDescription
MAIL_MAILERlogMail transport (log, smtp, ses, postmark, resend).
MAIL_SCHEMEnullSMTP encryption scheme (tls, ssl, or null).
MAIL_HOST127.0.0.1SMTP server hostname.
MAIL_PORT2525SMTP server port.
MAIL_USERNAMEnullSMTP authentication username.
MAIL_PASSWORDnullSMTP authentication password.
MAIL_FROM_ADDRESShello@example.comDefault sender address.
MAIL_FROM_NAME${APP_NAME}Default sender display name.
VariableDefaultDescription
AWS_ACCESS_KEY_ID(empty)AWS access key ID. Required when FILESYSTEM_DISK=s3.
AWS_SECRET_ACCESS_KEY(empty)AWS secret access key.
AWS_DEFAULT_REGIONus-east-1AWS region for S3 and SES.
AWS_BUCKET(empty)S3 bucket name.
AWS_USE_PATH_STYLE_ENDPOINTfalseUse path-style S3 URLs (required for MinIO and other S3-compatible stores).
VariableDefaultDescription
OCTANE_SERVERfrankenphpOctane application server. The .env.example default is frankenphp (the Docker deployment server); the octane.php config file falls back to roadrunner if unset. Set to frankenphp, swoole, or roadrunner to match your environment.
VariableDefaultDescription
VITE_APP_NAME${APP_NAME}Application name exposed to the Vite/JavaScript build.

These variables are read by docker-compose.yml for service configuration and are only required when using the Docker deployment.

VariableDefaultDescription
LETSENCRYPT_EMAIL(empty)Email address registered with Let’s Encrypt for TLS certificate notifications.
MYSQL_ROOT_PASSWORD(empty)Root password for the bundled MySQL service.
TRAEFIK_DYNAMIC_FILE/traefik/custom-domains.ymlPath (on the shared volume) where the dynamic Traefik file provider config is written.
TRAEFIK_APP_URLhttp://app:8000Internal URL Traefik uses to reach the Octane application container.

Configuration-only keys (not in .env.example)

Section titled “Configuration-only keys (not in .env.example)”

These variables are read via config/*.php but are intentionally absent from .env.example. You must add them to your .env file manually when needed.

VariableConfig fileDescription
MAXMIND_LICENSE_KEYconfig/services.phpFree MaxMind license key used by marketix:geoip:update to download the GeoLite2-City database. Obtain from maxmind.com. Required for geographic click statistics. See Operations.
PASSKEYS_USER_HANDLE_SECRETconfig/passkeys.phpSecret used to derive a stable WebAuthn user handle from each user. Defaults to APP_KEY. Set explicitly if you ever rotate APP_KEY to prevent passkeys from breaking.