From 2834d7f342a5eb0e7f2741cf5bbb7a19a76cbb30 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Thu, 25 May 2023 12:55:34 +0200 Subject: [PATCH] updates --- app/Http/Livewire/Server/PrivateKey.php | 4 +-- app/Jobs/ApplicationDeploymentJob.php | 4 +-- app/Providers/AppServiceProvider.php | 3 -- bootstrap/helpers/remoteProcess.php | 10 +++---- bootstrap/helpers/storage.php | 38 ------------------------- config/filesystems.php | 8 +++++- database/seeders/ProductionSeeder.php | 5 ++-- docker-compose.prod.yml | 3 +- 8 files changed, 17 insertions(+), 58 deletions(-) delete mode 100644 bootstrap/helpers/storage.php diff --git a/app/Http/Livewire/Server/PrivateKey.php b/app/Http/Livewire/Server/PrivateKey.php index c969d11d2..4cfa60191 100644 --- a/app/Http/Livewire/Server/PrivateKey.php +++ b/app/Http/Livewire/Server/PrivateKey.php @@ -4,10 +4,8 @@ namespace App\Http\Livewire\Server; use App\Models\PrivateKey as ModelsPrivateKey; use App\Models\Server; -use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Storage; use Livewire\Component; -use LocalStorage; class PrivateKey extends Component { @@ -20,7 +18,7 @@ class PrivateKey extends Component 'private_key_id' => $private_key_id ]); // Delete the old ssh mux file to force a new one to be created - LocalStorage::ssh_mux()->delete("{$server->first()->ip}_{$server->first()->port}_{$server->first()->user}"); + Storage::disk('ssh-mux')->delete("{$server->first()->ip}_{$server->first()->port}_{$server->first()->user}"); return redirect()->route('server.show', $this->parameters['server_uuid']); } public function mount() diff --git a/app/Jobs/ApplicationDeploymentJob.php b/app/Jobs/ApplicationDeploymentJob.php index 9692f6fe3..b96355d28 100644 --- a/app/Jobs/ApplicationDeploymentJob.php +++ b/app/Jobs/ApplicationDeploymentJob.php @@ -18,8 +18,6 @@ use Illuminate\Support\Facades\Storage; use Spatie\Activitylog\Models\Activity; use Symfony\Component\Yaml\Yaml; use Illuminate\Support\Str; -use LocalStorage; -use Log; use Spatie\Url\Url; class ApplicationDeploymentJob implements ShouldQueue @@ -205,7 +203,7 @@ COPY --from={$this->application->uuid}:{$this->git_commit}-build /app/{$this->ap $this->fail(); } finally { if (isset($this->docker_compose)) { - LocalStorage::deployments()->put(Str::kebab($this->application->name) . '/docker-compose.yml', $this->docker_compose); + Storage::disk('deployments')->put(Str::kebab($this->application->name) . '/docker-compose.yml', $this->docker_compose); } $this->execute_now(["docker rm -f {$this->deployment_uuid} >/dev/null 2>&1"], hideFromOutput: true); } diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index f01e3b461..0ce988285 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -4,11 +4,8 @@ namespace App\Providers; use App\Jobs\CoolifyTask; use Illuminate\Queue\Events\JobProcessed; -use Illuminate\Support\Facades\Process; use Illuminate\Support\Facades\Queue; use Illuminate\Support\ServiceProvider; -use Illuminate\Support\Str; -use LocalStorage; class AppServiceProvider extends ServiceProvider { diff --git a/bootstrap/helpers/remoteProcess.php b/bootstrap/helpers/remoteProcess.php index eb4c6f406..beb16eebd 100644 --- a/bootstrap/helpers/remoteProcess.php +++ b/bootstrap/helpers/remoteProcess.php @@ -46,20 +46,18 @@ function remote_process( function save_private_key_for_server(Server $server) { $temp_file = "id.root@{$server->ip}"; - LocalStorage::ssh_keys()->put($temp_file, $server->privateKey->private_key); - return '/var/www/html/storage/app/private/ssh/keys/' . $temp_file; + Storage::disk('ssh-keys')->put($temp_file, $server->privateKey->private_key); + Storage::disk('ssh-mux')->makeDirectory('.'); + return '/var/www/html/storage/app/ssh/keys/' . $temp_file; } function generate_ssh_command(string $private_key_location, string $server_ip, string $user, string $port, string $command, bool $isMux = true) { - LocalStorage::ssh_keys(); - LocalStorage::ssh_mux(); - $delimiter = 'EOF-COOLIFY-SSH'; $ssh_command = "ssh "; if ($isMux && config('coolify.mux_enabled')) { - $ssh_command .= '-o ControlMaster=auto -o ControlPersist=1m -o ControlPath=/var/www/html/storage/app/private/ssh/mux/%h_%p_%r '; + $ssh_command .= '-o ControlMaster=auto -o ControlPersist=1m -o ControlPath=/var/www/html/storage/app/ssh/mux/%h_%p_%r '; } $ssh_command .= "-i {$private_key_location} " . '-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ' diff --git a/bootstrap/helpers/storage.php b/bootstrap/helpers/storage.php deleted file mode 100644 index 488be38c3..000000000 --- a/bootstrap/helpers/storage.php +++ /dev/null @@ -1,38 +0,0 @@ - 'local', - 'root' => storage_path("app/private/deployments"), - 'visibility' => 'private', - ]); - $storage->makeDirectory('.'); - return $storage; - } - public static function ssh_keys() - { - $storage = Storage::build([ - 'driver' => 'local', - 'root' => storage_path("app/private/ssh/keys"), - 'visibility' => 'private' - ]); - $storage->makeDirectory('.'); - return $storage; - } - public static function ssh_mux() - { - $storage = Storage::build([ - 'driver' => 'local', - 'root' => storage_path("app/private/ssh/mux"), - 'visibility' => 'private', - ]); - $storage->makeDirectory('.'); - return $storage; - } -} diff --git a/config/filesystems.php b/config/filesystems.php index c19374b53..a7a0ba465 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -43,9 +43,15 @@ return [ 'throw' => false, ], + 'ssh-mux' => [ + 'driver' => 'local', + 'root' => storage_path('app/ssh/mux'), + 'visibility' => 'private', + 'throw' => false, + ], 'ssh-keys' => [ 'driver' => 'local', - 'root' => storage_path('app/ssh-keys'), + 'root' => storage_path('app/ssh/keys'), 'visibility' => 'private', 'throw' => false, ], diff --git a/database/seeders/ProductionSeeder.php b/database/seeders/ProductionSeeder.php index 630cb08ca..d383fc823 100644 --- a/database/seeders/ProductionSeeder.php +++ b/database/seeders/ProductionSeeder.php @@ -14,7 +14,6 @@ use App\Models\StandaloneDocker; use App\Models\Team; use Illuminate\Database\Seeder; use Illuminate\Support\Facades\Storage; -use LocalStorage; class ProductionSeeder extends Seeder { @@ -57,7 +56,7 @@ class ProductionSeeder extends Seeder // Save SSH Keys for the Coolify Host $coolify_key_name = "id.root@host.docker.internal"; - $coolify_key = LocalStorage::ssh_keys()->get("{$coolify_key_name}"); + $coolify_key = Storage::disk('ssh-keys')->get("{$coolify_key_name}"); if ($coolify_key) { $private_key = PrivateKey::find(0); @@ -76,7 +75,7 @@ class ProductionSeeder extends Seeder } else { // TODO: Add a command to generate a new SSH key for the Coolify host machine (localhost). echo "No SSH key found for the Coolify host machine (localhost).\n"; - echo "Please generate one and save it in storage/app/ssh-keys/{$coolify_key_name}\n"; + echo "Please generate one and save it in storage/app/ssh/keys/{$coolify_key_name}\n"; } // Add Coolify host (localhost) as Server if it doesn't exist diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index b0362cc32..416f373df 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -7,7 +7,8 @@ services: source: /data/coolify/source/.env target: /var/www/html/.env read_only: true - - /data/coolify:/var/www/html/storage/app/ + - /data/coolify/ssh:/var/www/html/storage/app/ssh + - /data/coolify/deployments:/var/www/html/storage/app/deployments environment: - APP_ENV=production - APP_DEBUG