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);
 | |
|                 }
 | |
|             }
 | |
|         });
 | |
|     }
 | |
| }
 | 
