mirror of
https://github.com/coollabsio/coolify.git
synced 2026-03-11 08:55:47 +00:00
chore(config): configure redis (#7499)
This commit is contained in:
commit
d666cdcbc3
5 changed files with 46 additions and 88 deletions
|
|
@ -13,6 +13,9 @@ DB_PORT=5432
|
||||||
DB_USERNAME=coolify
|
DB_USERNAME=coolify
|
||||||
DB_PASSWORD=password
|
DB_PASSWORD=password
|
||||||
|
|
||||||
|
REDIS_USERNAME=coolify
|
||||||
|
REDIS_PASSWORD=password
|
||||||
|
|
||||||
RAY_ENABLED=true
|
RAY_ENABLED=true
|
||||||
# RAY_PORT=
|
# RAY_PORT=
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
## [5.0.0-alpha.1] – 2026-XX-XX
|
## [5.0.0-alpha.1] - 2026-XX-XX
|
||||||
|
|
||||||
### Release Highlights
|
### Release Highlights
|
||||||
|
|
||||||
|
|
@ -22,10 +22,12 @@ All notable changes to this project will be documented in this file.
|
||||||
-
|
-
|
||||||
- **Laravel Configurations:**
|
- **Laravel Configurations:**
|
||||||
- Changed hashing algorithm from `bcrypt` to `argon2id` for enhanced security
|
- Changed hashing algorithm from `bcrypt` to `argon2id` for enhanced security
|
||||||
- Encrypt user sessions and expire inactive sessions after 24h
|
- Use Redis for sessions and expire inactive sessions after 24h
|
||||||
|
- Encrypt user sessions data
|
||||||
- Redirect Laravel logs to `stderr` so they can be viewed in docker logs
|
- Redirect Laravel logs to `stderr` so they can be viewed in docker logs
|
||||||
- Configured production logging to rotate automatically and keep only the last 10 days of logs to reduce disk usage
|
- Configured production logging to rotate automatically and keep only the last 10 days of logs to reduce disk usage
|
||||||
- Changed production log level from `debug` to `warning` to reduce disk usage and avoid logging sensitive information
|
- Changed production log level from `debug` to `warning` to reduce disk usage and avoid logging sensitive information
|
||||||
|
- Configured separate Redis connections for cache, jobs and sessions for easier debugging and separation
|
||||||
- Updated all Laravel config files to the latest version and removed all unused config options
|
- Updated all Laravel config files to the latest version and removed all unused config options
|
||||||
- Changed license from `Apache-2.0` to `AGPL-3.0`
|
- Changed license from `Apache-2.0` to `AGPL-3.0`
|
||||||
|
|
||||||
|
|
@ -35,7 +37,8 @@ All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
|
|
||||||
-
|
- Session cleanup job as we now use Redis for sessions with a TTL
|
||||||
|
- A lot of legacy code, outdated configs and dependencies
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ return [
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'default' => env('CACHE_STORE', 'database'),
|
'default' => env('CACHE_STORE', 'redis'),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
|
@ -44,65 +44,17 @@ return [
|
||||||
'key' => env('SESSION_CACHE_KEY', '_cache'),
|
'key' => env('SESSION_CACHE_KEY', '_cache'),
|
||||||
],
|
],
|
||||||
|
|
||||||
'database' => [
|
|
||||||
'driver' => 'database',
|
|
||||||
'connection' => env('DB_CACHE_CONNECTION'),
|
|
||||||
'table' => env('DB_CACHE_TABLE', 'cache'),
|
|
||||||
'lock_connection' => env('DB_CACHE_LOCK_CONNECTION'),
|
|
||||||
'lock_table' => env('DB_CACHE_LOCK_TABLE'),
|
|
||||||
],
|
|
||||||
|
|
||||||
'file' => [
|
'file' => [
|
||||||
'driver' => 'file',
|
'driver' => 'file',
|
||||||
'path' => storage_path('framework/cache/data'),
|
'path' => storage_path('framework/cache/data'),
|
||||||
'lock_path' => storage_path('framework/cache/data'),
|
'lock_path' => storage_path('framework/cache/data'),
|
||||||
],
|
],
|
||||||
|
|
||||||
'memcached' => [
|
|
||||||
'driver' => 'memcached',
|
|
||||||
'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
|
|
||||||
'sasl' => [
|
|
||||||
env('MEMCACHED_USERNAME'),
|
|
||||||
env('MEMCACHED_PASSWORD'),
|
|
||||||
],
|
|
||||||
'options' => [
|
|
||||||
// Memcached::OPT_CONNECT_TIMEOUT => 2000,
|
|
||||||
],
|
|
||||||
'servers' => [
|
|
||||||
[
|
|
||||||
'host' => env('MEMCACHED_HOST', '127.0.0.1'),
|
|
||||||
'port' => env('MEMCACHED_PORT', 11211),
|
|
||||||
'weight' => 100,
|
|
||||||
],
|
|
||||||
],
|
|
||||||
],
|
|
||||||
|
|
||||||
'redis' => [
|
'redis' => [
|
||||||
'driver' => 'redis',
|
'driver' => 'redis',
|
||||||
'connection' => env('REDIS_CACHE_CONNECTION', 'cache'),
|
'connection' => env('REDIS_CACHE_CONNECTION', 'cache'),
|
||||||
'lock_connection' => env('REDIS_CACHE_LOCK_CONNECTION', 'default'),
|
'lock_connection' => env('REDIS_CACHE_LOCK_CONNECTION', 'default'),
|
||||||
],
|
],
|
||||||
|
|
||||||
'dynamodb' => [
|
|
||||||
'driver' => 'dynamodb',
|
|
||||||
'key' => env('AWS_ACCESS_KEY_ID'),
|
|
||||||
'secret' => env('AWS_SECRET_ACCESS_KEY'),
|
|
||||||
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
|
|
||||||
'table' => env('DYNAMODB_CACHE_TABLE', 'cache'),
|
|
||||||
'endpoint' => env('DYNAMODB_ENDPOINT'),
|
|
||||||
],
|
|
||||||
|
|
||||||
'octane' => [
|
|
||||||
'driver' => 'octane',
|
|
||||||
],
|
|
||||||
|
|
||||||
'failover' => [
|
|
||||||
'driver' => 'failover',
|
|
||||||
'stores' => [
|
|
||||||
'database',
|
|
||||||
'array',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
],
|
],
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -116,5 +68,5 @@ return [
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'prefix' => env('CACHE_PREFIX', Str::slug((string) env('APP_NAME', 'laravel')).'-cache-'),
|
'prefix' => env('CACHE_PREFIX', Str::slug((string) env('APP_NAME', 'coolify')).'-cache-'),
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -108,13 +108,13 @@ return [
|
||||||
|
|
||||||
'options' => [
|
'options' => [
|
||||||
'cluster' => env('REDIS_CLUSTER', 'redis'),
|
'cluster' => env('REDIS_CLUSTER', 'redis'),
|
||||||
'prefix' => env('REDIS_PREFIX', Str::slug((string) env('APP_NAME', 'laravel')).'-database-'),
|
'prefix' => env('REDIS_PREFIX', Str::slug((string) env('APP_NAME', 'coolify')).'-database-'),
|
||||||
'persistent' => env('REDIS_PERSISTENT', false),
|
'persistent' => env('REDIS_PERSISTENT', false),
|
||||||
],
|
],
|
||||||
|
|
||||||
'default' => [
|
'default' => [
|
||||||
'url' => env('REDIS_URL'),
|
'url' => env('REDIS_URL'),
|
||||||
'host' => env('REDIS_HOST', '127.0.0.1'),
|
'host' => env('REDIS_HOST', 'coolify-redis'),
|
||||||
'username' => env('REDIS_USERNAME'),
|
'username' => env('REDIS_USERNAME'),
|
||||||
'password' => env('REDIS_PASSWORD'),
|
'password' => env('REDIS_PASSWORD'),
|
||||||
'port' => env('REDIS_PORT', '6379'),
|
'port' => env('REDIS_PORT', '6379'),
|
||||||
|
|
@ -125,9 +125,9 @@ return [
|
||||||
'backoff_cap' => env('REDIS_BACKOFF_CAP', 1000),
|
'backoff_cap' => env('REDIS_BACKOFF_CAP', 1000),
|
||||||
],
|
],
|
||||||
|
|
||||||
'cache' => [
|
'sessions' => [
|
||||||
'url' => env('REDIS_URL'),
|
'url' => env('REDIS_URL'),
|
||||||
'host' => env('REDIS_HOST', '127.0.0.1'),
|
'host' => env('REDIS_HOST', 'coolify-redis'),
|
||||||
'username' => env('REDIS_USERNAME'),
|
'username' => env('REDIS_USERNAME'),
|
||||||
'password' => env('REDIS_PASSWORD'),
|
'password' => env('REDIS_PASSWORD'),
|
||||||
'port' => env('REDIS_PORT', '6379'),
|
'port' => env('REDIS_PORT', '6379'),
|
||||||
|
|
@ -137,5 +137,31 @@ return [
|
||||||
'backoff_base' => env('REDIS_BACKOFF_BASE', 100),
|
'backoff_base' => env('REDIS_BACKOFF_BASE', 100),
|
||||||
'backoff_cap' => env('REDIS_BACKOFF_CAP', 1000),
|
'backoff_cap' => env('REDIS_BACKOFF_CAP', 1000),
|
||||||
],
|
],
|
||||||
|
|
||||||
|
'jobs' => [
|
||||||
|
'url' => env('REDIS_URL'),
|
||||||
|
'host' => env('REDIS_HOST', 'coolify-redis'),
|
||||||
|
'username' => env('REDIS_USERNAME'),
|
||||||
|
'password' => env('REDIS_PASSWORD'),
|
||||||
|
'port' => env('REDIS_PORT', '6379'),
|
||||||
|
'database' => env('REDIS_CACHE_DB', '2'),
|
||||||
|
'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', 'coolify-redis'),
|
||||||
|
'username' => env('REDIS_USERNAME'),
|
||||||
|
'password' => env('REDIS_PASSWORD'),
|
||||||
|
'port' => env('REDIS_PORT', '6379'),
|
||||||
|
'database' => env('REDIS_CACHE_DB', '3'),
|
||||||
|
'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),
|
||||||
|
],
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ return [
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'driver' => env('SESSION_DRIVER', 'database'),
|
'driver' => env('SESSION_DRIVER', 'redis'),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
|
@ -33,7 +33,7 @@ return [
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'lifetime' => (int) env('SESSION_LIFETIME', 120),
|
'lifetime' => (int) env('SESSION_LIFETIME', 1440),
|
||||||
|
|
||||||
'expire_on_close' => env('SESSION_EXPIRE_ON_CLOSE', false),
|
'expire_on_close' => env('SESSION_EXPIRE_ON_CLOSE', false),
|
||||||
|
|
||||||
|
|
@ -50,19 +50,6 @@ return [
|
||||||
|
|
||||||
'encrypt' => env('SESSION_ENCRYPT', true),
|
'encrypt' => env('SESSION_ENCRYPT', true),
|
||||||
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Session File Location
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
|
|
|
||||||
| When utilizing the "file" session driver, the session files are placed
|
|
||||||
| on disk. The default storage location is defined here; however, you
|
|
||||||
| are free to provide another location where they should be stored.
|
|
||||||
|
|
|
||||||
*/
|
|
||||||
|
|
||||||
'files' => storage_path('framework/sessions'),
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
| Session Database Connection
|
| Session Database Connection
|
||||||
|
|
@ -74,20 +61,7 @@ return [
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'connection' => env('SESSION_CONNECTION'),
|
'connection' => env('SESSION_CONNECTION', 'sessions'),
|
||||||
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Session Database Table
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
|
|
|
||||||
| When using the "database" session driver, you may specify the table to
|
|
||||||
| be used to store sessions. Of course, a sensible default is defined
|
|
||||||
| for you; however, you're welcome to change this to another table.
|
|
||||||
|
|
|
||||||
*/
|
|
||||||
|
|
||||||
'table' => env('SESSION_TABLE', 'sessions'),
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
|
@ -102,7 +76,7 @@ return [
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'store' => env('SESSION_STORE'),
|
'store' => env('SESSION_STORE', 'redis'),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
|
@ -130,7 +104,7 @@ return [
|
||||||
|
|
||||||
'cookie' => env(
|
'cookie' => env(
|
||||||
'SESSION_COOKIE',
|
'SESSION_COOKIE',
|
||||||
Str::slug((string) env('APP_NAME', 'laravel')).'-session',
|
Str::slug((string) env('APP_NAME', 'coolify')).'-session',
|
||||||
),
|
),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue