diff --git a/app/Http/Livewire/Boarding/Index.php b/app/Http/Livewire/Boarding/Index.php index c68cd8a50..44b45dee7 100644 --- a/app/Http/Livewire/Boarding/Index.php +++ b/app/Http/Livewire/Boarding/Index.php @@ -135,7 +135,7 @@ uZx9iFkCELtxrh31QJ68AAAAEXNhaWxANzZmZjY2ZDJlMmRkAQIDBA== { $this->selectedExistingPrivateKey = null; $this->privateKeyType = $type; - if ($type === 'create' && !isDev()) { + if ($type === 'create') { $this->createNewPrivateKey(); } $this->currentState = 'create-private-key'; diff --git a/app/Http/Livewire/PrivateKey/Change.php b/app/Http/Livewire/PrivateKey/Change.php index 528c44506..6c849b0a9 100644 --- a/app/Http/Livewire/PrivateKey/Change.php +++ b/app/Http/Livewire/PrivateKey/Change.php @@ -8,7 +8,7 @@ use Livewire\Component; class Change extends Component { public PrivateKey $private_key; - + public $public_key; protected $rules = [ 'private_key.name' => 'required|string', 'private_key.description' => 'nullable|string', @@ -21,6 +21,14 @@ class Change extends Component 'private_key.private_key' => 'private key' ]; + public function mount() + { + try { + $this->public_key = $this->private_key->publicKey(); + }catch(\Exception $e) { + return general_error_handler(err: $e, that: $this); + } + } public function delete() { try { diff --git a/app/Models/PrivateKey.php b/app/Models/PrivateKey.php index d4fd0bfa2..d96aecd4e 100644 --- a/app/Models/PrivateKey.php +++ b/app/Models/PrivateKey.php @@ -2,6 +2,7 @@ namespace App\Models; +use phpseclib3\Crypt\PublicKeyLoader; class PrivateKey extends BaseModel { @@ -19,6 +20,15 @@ class PrivateKey extends BaseModel return PrivateKey::whereTeamId(currentTeam()->id)->select($selectArray->all()); } + public function publicKey() + { + try { + return PublicKeyLoader::load($this->private_key)->getPublicKey()->toString('OpenSSH',['comment' => '']); + } catch (\Exception $e) { + return 'Error loading private key'; + } + } + public function isEmpty() { if ($this->servers()->count() === 0 && $this->applications()->count() === 0 && $this->githubApps()->count() === 0 && $this->gitlabApps()->count() === 0) { diff --git a/config/sentry.php b/config/sentry.php index d691d226f..e1e34c182 100644 --- a/config/sentry.php +++ b/config/sentry.php @@ -7,7 +7,7 @@ return [ // The release version of your application // Example with dynamic git hash: trim(exec('git --git-dir ' . base_path('.git') . ' log --pretty="%h" -n1 HEAD')) - 'release' => '4.0.0-beta.32', + 'release' => '4.0.0-beta.33', 'server_name' => env('APP_ID', 'coolify'), // When left empty or `null` the Laravel environment will be used 'environment' => config('app.env'), diff --git a/config/version.php b/config/version.php index 0a9679488..c3d0beeb6 100644 --- a/config/version.php +++ b/config/version.php @@ -1,3 +1,3 @@ - @if ($privateKeyType === 'create' && !isDev()) + @if ($privateKeyType === 'create') Copy this to your server's ~/.ssh/authorized_keys file. diff --git a/resources/views/livewire/private-key/change.blade.php b/resources/views/livewire/private-key/change.blade.php index 7fe31776f..242f5865c 100644 --- a/resources/views/livewire/private-key/change.blade.php +++ b/resources/views/livewire/private-key/change.blade.php @@ -19,6 +19,10 @@
+
+
Public Key
+
+
Private Key *
+
diff --git a/versions.json b/versions.json index 68218eca5..16e56a1e9 100644 --- a/versions.json +++ b/versions.json @@ -4,7 +4,7 @@ "version": "3.12.36" }, "v4": { - "version": "4.0.0-beta.32" + "version": "4.0.0-beta.33" } } }