env('DB_CONNECTION', 'sqlite'), /* |-------------------------------------------------------------------------- | Database Connections |-------------------------------------------------------------------------- | | Below are all of the database connections defined for your application. | An example configuration is provided for each database system which | is supported by Laravel. You're free to add / remove connections. | */ 'connections' => [ 'sqlite' => [ 'driver' => 'sqlite', 'url' => env('DB_URL'), 'database' => env('DB_DATABASE', database_path('database.sqlite')), 'prefix' => '', 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true), 'busy_timeout' => null, 'journal_mode' => null, 'synchronous' => null, 'transaction_mode' => 'DEFERRED', ], 'mysql' => [ 'driver' => 'mysql', 'url' => env('DB_URL'), 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'laravel'), 'username' => env('DB_USERNAME', 'root'), 'password' => env('DB_PASSWORD', ''), 'unix_socket' => env('DB_SOCKET', ''), 'charset' => env('DB_CHARSET', 'utf8mb4'), 'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'), 'prefix' => '', 'prefix_indexes' => true, 'strict' => true, 'engine' => null, 'options' => extension_loaded('pdo_mysql') ? array_filter([ (PHP_VERSION_ID >= 80500 ? \Pdo\Mysql::ATTR_SSL_CA : \PDO::MYSQL_ATTR_SSL_CA) => env('MYSQL_ATTR_SSL_CA'), ]) : [], ], 'mariadb' => [ 'driver' => 'mariadb', 'url' => env('DB_URL'), 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'laravel'), 'username' => env('DB_USERNAME', 'root'), 'password' => env('DB_PASSWORD', ''), 'unix_socket' => env('DB_SOCKET', ''), 'charset' => env('DB_CHARSET', 'utf8mb4'), 'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'), 'prefix' => '', 'prefix_indexes' => true, 'strict' => true, 'engine' => null, 'options' => extension_loaded('pdo_mysql') ? array_filter([ (PHP_VERSION_ID >= 80500 ? \Pdo\Mysql::ATTR_SSL_CA : \PDO::MYSQL_ATTR_SSL_CA) => env('MYSQL_ATTR_SSL_CA'), ]) : [], ], 'pgsql' => [ 'driver' => 'pgsql', 'url' => env('DB_URL'), 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '5432'), 'database' => env('DB_DATABASE', 'laravel'), 'username' => env('DB_USERNAME', 'root'), 'password' => env('DB_PASSWORD', ''), 'charset' => env('DB_CHARSET', 'utf8'), 'prefix' => '', 'prefix_indexes' => true, 'search_path' => 'public', 'sslmode' => 'prefer', ], 'sqlsrv' => [ 'driver' => 'sqlsrv', 'url' => env('DB_URL'), 'host' => env('DB_HOST', 'localhost'), 'port' => env('DB_PORT', '1433'), 'database' => env('DB_DATABASE', 'laravel'), 'username' => env('DB_USERNAME', 'root'), 'password' => env('DB_PASSWORD', ''), 'charset' => env('DB_CHARSET', 'utf8'), 'prefix' => '', 'prefix_indexes' => true, // 'encrypt' => env('DB_ENCRYPT', 'yes'), // 'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'false'), ], /* |-------------------------------------------------------------------------- | AltumCode Legacy Databases (for data migration) |-------------------------------------------------------------------------- | | These connections are used by the data migration commands to import | data from the legacy AltumCode products into Host Hub. | | Configure via environment variables: | - ALTUM_BIOHOST_* for BioHost (link-in-bio pages) | - ALTUM_ANALYTICS_* for Analytics (web tracking) | - ALTUM_NOTIFY_* for NotifyHost (push notifications) | - ALTUM_TRUST_* for TrustHost (social proof widgets) | */ 'altum_biohost' => [ 'driver' => 'mysql', 'host' => env('ALTUM_BIOHOST_HOST', '127.0.0.1'), 'port' => env('ALTUM_BIOHOST_PORT', '3306'), 'database' => env('ALTUM_BIOHOST_DATABASE', 'biohost'), 'username' => env('ALTUM_BIOHOST_USERNAME', 'root'), 'password' => env('ALTUM_BIOHOST_PASSWORD', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'strict' => false, ], 'altum_analytics' => [ 'driver' => 'mysql', 'host' => env('ALTUM_ANALYTICS_HOST', '127.0.0.1'), 'port' => env('ALTUM_ANALYTICS_PORT', '3306'), 'database' => env('ALTUM_ANALYTICS_DATABASE', 'analytics'), 'username' => env('ALTUM_ANALYTICS_USERNAME', 'root'), 'password' => env('ALTUM_ANALYTICS_PASSWORD', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'strict' => false, ], 'altum_notify' => [ 'driver' => 'mysql', 'host' => env('ALTUM_NOTIFY_HOST', '127.0.0.1'), 'port' => env('ALTUM_NOTIFY_PORT', '3306'), 'database' => env('ALTUM_NOTIFY_DATABASE', 'notify'), 'username' => env('ALTUM_NOTIFY_USERNAME', 'root'), 'password' => env('ALTUM_NOTIFY_PASSWORD', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'strict' => false, ], 'altum_trust' => [ 'driver' => 'mysql', 'host' => env('ALTUM_TRUST_HOST', '127.0.0.1'), 'port' => env('ALTUM_TRUST_PORT', '3306'), 'database' => env('ALTUM_TRUST_DATABASE', 'trust'), 'username' => env('ALTUM_TRUST_USERNAME', 'root'), 'password' => env('ALTUM_TRUST_PASSWORD', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'strict' => false, ], ], /* |-------------------------------------------------------------------------- | Migration Repository Table |-------------------------------------------------------------------------- | | This table keeps track of all the migrations that have already run for | your application. Using this information, we can determine which of | the migrations on disk haven't actually been run on the database. | */ 'migrations' => [ 'table' => 'migrations', 'update_date_on_publish' => true, ], /* |-------------------------------------------------------------------------- | Redis Databases |-------------------------------------------------------------------------- | | Redis is an open source, fast, and advanced key-value store that also | provides a richer body of commands than a typical key-value system | such as Memcached. You may define your connection settings here. | */ /* |-------------------------------------------------------------------------- | Redis Configuration |-------------------------------------------------------------------------- | | Supports two modes: | 1. Standalone: Set REDIS_HOST and REDIS_PASSWORD | 2. Sentinel (HA): Set REDIS_NODES (comma-separated IPs) and REDIS_REPLICATION_KEY | | Sentinel mode enables automatic failover across multiple Redis nodes. | */ 'redis' => env('REDIS_NODES') ? [ // Sentinel mode - for multi-host replication 'client' => 'predis', 'options' => [ 'replication' => 'sentinel', 'service' => env('REDIS_MASTER_NAME', 'hosthub'), 'prefix' => env('REDIS_PREFIX', Str::slug((string) env('APP_NAME', 'laravel')).'-database-'), 'parameters' => [ 'password' => env('REDIS_REPLICATION_KEY'), 'database' => 0, ], ], 'default' => array_map(fn ($ip) => [ 'host' => trim($ip), 'port' => (int) env('REDIS_SENTINEL_PORT', 26379), ], explode(',', env('REDIS_NODES', '127.0.0.1'))), 'cache' => array_map(fn ($ip) => [ 'host' => trim($ip), 'port' => (int) env('REDIS_SENTINEL_PORT', 26379), ], explode(',', env('REDIS_NODES', '127.0.0.1'))), ] : [ // Standalone mode - single Redis instance 'client' => env('REDIS_CLIENT', 'predis'), 'options' => [ 'cluster' => env('REDIS_CLUSTER', 'redis'), 'prefix' => env('REDIS_PREFIX', Str::slug((string) env('APP_NAME', 'laravel')).'-database-'), 'persistent' => env('REDIS_PERSISTENT', false), ], 'default' => [ 'url' => env('REDIS_URL'), 'host' => env('REDIS_HOST', '127.0.0.1'), 'username' => env('REDIS_USERNAME'), 'password' => env('REDIS_PASSWORD', env('REDIS_REPLICATION_KEY')), 'port' => env('REDIS_PORT', '6379'), 'database' => env('REDIS_DB', '0'), 'max_retries' => env('REDIS_MAX_RETRIES', 3), 'backoff_algorithm' => env('REDIS_BACKOFF_ALGORITHM', 'decorrelated_jitter'), 'backoff_base' => env('REDIS_BACKOFF_BASE', 100), 'backoff_cap' => env('REDIS_BACKOFF_CAP', 1000), ], 'cache' => [ 'url' => env('REDIS_URL'), 'host' => env('REDIS_HOST', '127.0.0.1'), 'username' => env('REDIS_USERNAME'), 'password' => env('REDIS_PASSWORD', env('REDIS_REPLICATION_KEY')), 'port' => env('REDIS_PORT', '6379'), 'database' => env('REDIS_CACHE_DB', '1'), 'max_retries' => env('REDIS_MAX_RETRIES', 3), 'backoff_algorithm' => env('REDIS_BACKOFF_ALGORITHM', 'decorrelated_jitter'), 'backoff_base' => env('REDIS_BACKOFF_BASE', 100), 'backoff_cap' => env('REDIS_BACKOFF_CAP', 1000), ], ], ];