Skip to content

Commit 801cb8e

Browse files
authored
config: add ssl/tls options for mysql and redis (pterodactyl#3464)
1 parent 682ca6c commit 801cb8e

File tree

4 files changed

+48
-8
lines changed

4 files changed

+48
-8
lines changed

composer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
"php": "^7.4 || ^8.0",
1515
"ext-json": "*",
1616
"ext-mbstring": "*",
17+
"ext-pdo": "*",
1718
"ext-pdo_mysql": "*",
1819
"ext-zip": "*",
1920
"aws/aws-sdk-php": "^3.171",

config/cache.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
| using this caching library. This connection is used when another is
1111
| not explicitly specified when executing a given caching function.
1212
|
13-
| Supported: "apc", "array", "database", "file", "memcached", "redis"
13+
| Supported: "apc", "array", "database", "file", "memcached", "redis", "octane"
1414
|
1515
*/
1616

@@ -34,12 +34,14 @@
3434

3535
'array' => [
3636
'driver' => 'array',
37+
'serialize' => false,
3738
],
3839

3940
'database' => [
4041
'driver' => 'database',
4142
'table' => 'cache',
4243
'connection' => null,
44+
'lock_connection' => null,
4345
],
4446

4547
'file' => [
@@ -69,13 +71,18 @@
6971
'redis' => [
7072
'driver' => 'redis',
7173
'connection' => 'default',
74+
'lock_connection' => 'default',
7275
],
7376

7477
'sessions' => [
7578
'driver' => env('SESSION_DRIVER', 'database'),
7679
'table' => 'sessions',
7780
'connection' => env('SESSION_DRIVER') === 'redis' ? 'sessions' : null,
7881
],
82+
83+
'octane' => [
84+
'driver' => 'octane',
85+
],
7986
],
8087

8188
/*

config/database.php

Lines changed: 37 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?php
22

3+
use Illuminate\Support\Str;
34
use Pterodactyl\Helpers\Time;
45

56
return [
@@ -35,17 +36,26 @@
3536
'connections' => [
3637
'mysql' => [
3738
'driver' => 'mysql',
39+
'url' => env('DATABASE_URL'),
3840
'host' => env('DB_HOST', '127.0.0.1'),
39-
'unix_socket' => env('DB_SOCKET'),
4041
'port' => env('DB_PORT', '3306'),
4142
'database' => env('DB_DATABASE', 'panel'),
4243
'username' => env('DB_USERNAME', 'pterodactyl'),
4344
'password' => env('DB_PASSWORD', ''),
45+
'unix_socket' => env('DB_SOCKET', ''),
4446
'charset' => 'utf8mb4',
4547
'collation' => 'utf8mb4_unicode_ci',
4648
'prefix' => env('DB_PREFIX', ''),
49+
'prefix_indexes' => true,
4750
'strict' => env('DB_STRICT_MODE', false),
4851
'timezone' => env('DB_TIMEZONE', Time::getMySQLTimezoneOffset(env('APP_TIMEZONE', 'UTC'))),
52+
'sslmode' => env('DB_SSLMODE', 'prefer'),
53+
'options' => extension_loaded('pdo_mysql') ? array_filter([
54+
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
55+
PDO::MYSQL_ATTR_SSL_CERT => env('MYSQL_ATTR_SSL_CERT'),
56+
PDO::MYSQL_ATTR_SSL_KEY => env('MYSQL_ATTR_SSL_KEY'),
57+
PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => env('MYSQL_ATTR_SSL_VERIFY_SERVER_CERT', true),
58+
]) : [],
4959
],
5060

5161
/*
@@ -97,24 +107,47 @@
97107
*/
98108

99109
'redis' => [
100-
'client' => 'predis',
110+
'client' => env('REDIS_CLIENT', 'predis'),
111+
112+
'options' => [
113+
'cluster' => env('REDIS_CLUSTER', 'redis'),
114+
'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'),
115+
],
101116

102117
'default' => [
103118
'scheme' => env('REDIS_SCHEME', 'tcp'),
104119
'path' => env('REDIS_PATH', '/run/redis/redis.sock'),
105120
'host' => env('REDIS_HOST', 'localhost'),
106-
'password' => env('REDIS_PASSWORD', null),
121+
'password' => env('REDIS_PASSWORD'),
107122
'port' => env('REDIS_PORT', 6379),
108123
'database' => env('REDIS_DATABASE', 0),
124+
'context' => extension_loaded('redis') && env('REDIS_CLIENT') === 'phpredis' ? [
125+
'stream' => array_filter([
126+
'verify_peer' => env('REDIS_VERIFY_PEER', true),
127+
'verify_peer_name' => env('REDIS_VERIFY_PEER_NAME', true),
128+
'cafile' => env('REDIS_CAFILE'),
129+
'local_cert' => env('REDIS_LOCAL_CERT'),
130+
'local_pk' => env('REDIS_LOCAL_PK'),
131+
]),
132+
] : [],
109133
],
110134

111135
'sessions' => [
112136
'scheme' => env('REDIS_SCHEME', 'tcp'),
113137
'path' => env('REDIS_PATH', '/run/redis/redis.sock'),
114138
'host' => env('REDIS_HOST', 'localhost'),
115-
'password' => env('REDIS_PASSWORD', null),
139+
'password' => env('REDIS_PASSWORD'),
116140
'port' => env('REDIS_PORT', 6379),
117141
'database' => env('REDIS_DATABASE_SESSIONS', 1),
142+
'context' => extension_loaded('redis') && env('REDIS_CLIENT') === 'phpredis' ? [
143+
'stream' => array_filter([
144+
'verify_peer' => env('REDIS_VERIFY_PEER', true),
145+
'verify_peer_name' => env('REDIS_VERIFY_PEER_NAME', true),
146+
'cafile' => env('REDIS_CAFILE'),
147+
'local_cert' => env('REDIS_LOCAL_CERT'),
148+
'local_pk' => env('REDIS_LOCAL_PK'),
149+
]),
150+
] : [],
118151
],
119152
],
120153
];

config/session.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@
1010
| requests. By default, we will use the lightweight native driver but
1111
| you may specify any of the other wonderful drivers provided here.
1212
|
13-
| Supported: "file", "cookie", "database", "apc",
14-
| "memcached", "redis", "array"
13+
| Supported: "file", "cookie", "database", "apc", "memcached", "redis", "array"
1514
|
1615
*/
1716

@@ -147,7 +146,7 @@
147146
|
148147
*/
149148

150-
'domain' => env('SESSION_DOMAIN', null),
149+
'domain' => env('SESSION_DOMAIN'),
151150

152151
/*
153152
|--------------------------------------------------------------------------

0 commit comments

Comments
 (0)