42 lines
1.3 KiB
PHP
42 lines
1.3 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) {
|
|
$existingCert = SslCertificate::where('server_id', $server->id)->where('is_ca_certificate', true)->first();
|
|
|
|
if (! $existingCert) {
|
|
$serverCert = SslHelper::generateSslCertificate(
|
|
commonName: 'Coolify CA Certificate',
|
|
serverId: $server->id,
|
|
isCaCertificate: true,
|
|
validityDays: 15 * 365
|
|
);
|
|
|
|
$serverCertPath = config('constants.coolify.base_config_path').'/ssl/';
|
|
|
|
$commands = collect([
|
|
"mkdir -p $serverCertPath",
|
|
"chown -R 9999:root $serverCertPath",
|
|
"chmod -R 700 $serverCertPath",
|
|
"echo '{$serverCert->ssl_certificate}' > $serverCertPath/coolify-ca.crt",
|
|
"chmod 644 $serverCertPath/coolify-ca.crt",
|
|
]);
|
|
|
|
remote_process($commands, $server);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|