44 lines
1.4 KiB
PHP
44 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use App\Helpers\SslHelper;
|
|
use App\Models\Server;
|
|
use App\Models\SslCertificate;
|
|
use Illuminate\Database\Seeder;
|
|
|
|
class CaSslCertSeeder extends Seeder
|
|
{
|
|
public function run()
|
|
{
|
|
Server::chunk(200, function ($servers) {
|
|
foreach ($servers as $server) {
|
|
$existingCaCert = SslCertificate::where('server_id', $server->id)->where('is_ca_certificate', true)->first();
|
|
|
|
if (! $existingCaCert) {
|
|
$caCert = SslHelper::generateSslCertificate(
|
|
commonName: 'Coolify CA Certificate',
|
|
serverId: $server->id,
|
|
isCaCertificate: true,
|
|
validityDays: 10 * 365
|
|
);
|
|
} else {
|
|
$caCert = $existingCaCert;
|
|
}
|
|
$caCertPath = config('constants.coolify.base_config_path').'/ssl/';
|
|
|
|
$commands = collect([
|
|
"mkdir -p $caCertPath",
|
|
"chown -R 9999:root $caCertPath",
|
|
"chmod -R 700 $caCertPath",
|
|
"rm -rf $caCertPath/coolify-ca.crt",
|
|
"echo '{$caCert->ssl_certificate}' > $caCertPath/coolify-ca.crt",
|
|
"chmod 644 $caCertPath/coolify-ca.crt",
|
|
]);
|
|
|
|
remote_process($commands, $server);
|
|
}
|
|
});
|
|
}
|
|
}
|