diff --git a/app/Data/Deployments/Plan.php b/app/Data/Deployments/Plan.php new file mode 100644 index 0000000..8bb3f6a --- /dev/null +++ b/app/Data/Deployments/Plan.php @@ -0,0 +1,15 @@ +delay(now()->addSeconds(5)); - logger('server created'); - logger($createdServer->id); - logger($createdServer->ipv4); - logger($createdServer->ipv6); - logger($createdServer->rootPassword); - logger($sudoPassword); - session()->flash('sudo_password', $sudoPassword); return redirect()->route('servers.show', ['organisation' => $organisation->id, 'server' => $server->id]); diff --git a/app/Jobs/Servers/ProvisionServer.php b/app/Jobs/Servers/ProvisionServer.php index f318cd7..85a4ec9 100644 --- a/app/Jobs/Servers/ProvisionServer.php +++ b/app/Jobs/Servers/ProvisionServer.php @@ -43,21 +43,12 @@ class ProvisionServer implements ShouldQueue, ShouldBeEncrypted ]); logger('executing script on server'); if (! $result->isSuccessful()) { - logger('failed to execute script on server'); - logger($result->getOutput()); - logger($result->getErrorOutput()); - logger($result->getExitCode()); $this->server->update([ 'status' => ServerStatus::PROVISIONING_FAILED, ]); return; } - logger('script executed on server'); - logger($result->getOutput()); - logger($result->getErrorOutput()); - logger($result->getExitCode()); - $this->server->update([ 'status' => ServerStatus::PROVISIONING, ]); diff --git a/app/Jobs/Servers/WaitForServerToConnect.php b/app/Jobs/Servers/WaitForServerToConnect.php index d6df088..0fd3fca 100644 --- a/app/Jobs/Servers/WaitForServerToConnect.php +++ b/app/Jobs/Servers/WaitForServerToConnect.php @@ -34,12 +34,6 @@ class WaitForServerToConnect implements ShouldQueue, ShouldBeEncrypted ->execute('echo "Connected"'); if (! $process->isSuccessful()) { - logger('root pw: ' . $this->rootPassword); - logger('server not reachable'); - logger('exit code' . $process->getExitCode()); - logger('output'); - logger($process->getOutput()); - logger($process->getErrorOutput()); $this->release(15); return; } diff --git a/app/Models/Service.php b/app/Models/Service.php index 5d1e332..148798c 100644 --- a/app/Models/Service.php +++ b/app/Models/Service.php @@ -2,6 +2,8 @@ namespace App\Models; +use App\Drivers\Driver; +use App\Enums\ServiceStatus; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasMany; @@ -10,6 +12,13 @@ class Service extends Model { protected $guarded = []; + protected function casts(): array + { + return [ + 'status' => ServiceStatus::class, + ]; + } + public function server(): BelongsTo { return $this->belongsTo(Server::class); @@ -19,4 +28,9 @@ class Service extends Model { return $this->hasMany(Slice::class); } + + public function driver()//: Driver + { + // @todo. This is the class that controls the service + } } diff --git a/database/migrations/2025_03_27_121050_create_services_table.php b/database/migrations/2025_03_27_121050_create_services_table.php index 7cd8c2b..250e41a 100644 --- a/database/migrations/2025_03_27_121050_create_services_table.php +++ b/database/migrations/2025_03_27_121050_create_services_table.php @@ -12,9 +12,14 @@ return new class extends Migration Schema::create('services', function (Blueprint $table) { $table->id(); $table->foreignIdFor(Server::class); - $table->string('category'); - $table->string('type'); $table->string('name'); + $table->string('status'); + $table->string('category'); // database / cache / webserver + $table->string('type'); // postgres / redis / caddy + $table->string('version'); // 17 / 7 / 2 + $table->string('driver_name'); + $table->string('container_name')->nullable(); + $table->string('container_id')->nullable(); $table->timestamps(); }); } diff --git a/resources/js/components/AppSidebarHeader.vue b/resources/js/components/AppSidebarHeader.vue index 18d7844..3e7158e 100644 --- a/resources/js/components/AppSidebarHeader.vue +++ b/resources/js/components/AppSidebarHeader.vue @@ -20,10 +20,18 @@ const environment = usePage().props.environment ?? null;
-
+
-
- @@ -42,15 +50,18 @@ const environment = usePage().props.environment ?? null;
- + @@ -63,32 +74,44 @@ const environment = usePage().props.environment ?? null;
-
+
- + {{ env.name }}
-
diff --git a/resources/js/pages/servers/Index.vue b/resources/js/pages/servers/Index.vue index 9f6b1fe..6b93afb 100644 --- a/resources/js/pages/servers/Index.vue +++ b/resources/js/pages/servers/Index.vue @@ -1,6 +1,7 @@ -