diff --git a/app/Actions/Server/InstallDocker.php b/app/Actions/Server/InstallDocker.php index 77471c07e..28c9e1226 100644 --- a/app/Actions/Server/InstallDocker.php +++ b/app/Actions/Server/InstallDocker.php @@ -2,21 +2,28 @@ namespace App\Actions\Server; -use App\Enums\ActivityTypes; use App\Models\Server; class InstallDocker { public function __invoke(Server $server) { + $dockerVersion = '23.0'; $config = base64_encode('{ "live-restore": true }'); $activity = remote_process([ - "echo Installing Docker...", - "curl https://releases.rancher.com/install-docker/23.0.sh | sh", - "echo Configuring Docker...", - "echo '{$config}' | base64 -d > /etc/docker/daemon.json", - "echo Restarting Docker...", - "systemctl restart docker" + "echo ####### Installing Prerequisites...", + "command -v jq >/dev/null || apt-get update", + "command -v jq >/dev/null || apt install -y jq", + "echo ####### Installing/updating Docker Engine...", + "curl https://releases.rancher.com/install-docker/{$dockerVersion}.sh | sh", + "echo ####### Configuring Docker Engine (merging existing configuration with the required)...", + "test -s /etc/docker/daemon.json && cp /etc/docker/daemon.json \"/etc/docker/daemon.json.original-`date +\"%Y%m%d-%H%M%S\"`\" || echo '{$config}' | base64 -d > /etc/docker/daemon.json", + "echo '{$config}' | base64 -d > /etc/docker/daemon.json.coolify", + "cat <<< $(jq . /etc/docker/daemon.json.coolify) > /etc/docker/daemon.json.coolify", + "cat <<< $(jq -s '.[0] * .[1]' /etc/docker/daemon.json /etc/docker/daemon.json.coolify) > /etc/docker/daemon.json", + "echo ####### Restarting Docker Engine...", + "systemctl restart docker", + "echo ####### Done!" ], $server); return $activity; diff --git a/app/Http/Livewire/Server/Form.php b/app/Http/Livewire/Server/Form.php index 6680042a2..71e0ceafb 100644 --- a/app/Http/Livewire/Server/Form.php +++ b/app/Http/Livewire/Server/Form.php @@ -39,16 +39,15 @@ class Form extends Component if (!$this->uptime) { $this->uptime = 'Server not reachable.'; throw new \Exception('Server not reachable.'); - } else { - if (!$this->server->settings->is_validated) { - $this->server->settings->is_validated = true; - $this->server->settings->save(); - $this->emit('serverValidated'); - } } $this->dockerVersion = instant_remote_process(['docker version|head -2|grep -i version'], $this->server, false); if (!$this->dockerVersion) { $this->dockerVersion = 'Not installed.'; + } else { + $this->server->settings->is_docker_installed = true; + $this->server->settings->is_validated = true; + $this->server->settings->save(); + $this->emit('serverValidated'); } $this->dockerComposeVersion = instant_remote_process(['docker compose version|head -2|grep -i version'], $this->server, false); if (!$this->dockerComposeVersion) { diff --git a/app/Jobs/CoolifyTask.php b/app/Jobs/CoolifyTask.php index 56914a216..d87468efc 100755 --- a/app/Jobs/CoolifyTask.php +++ b/app/Jobs/CoolifyTask.php @@ -35,6 +35,5 @@ class CoolifyTask implements ShouldQueue ]); $remote_process(); - // @TODO: Remove file at $this->activity->getExtraProperty('private_key_location') after process is finished } } diff --git a/app/Models/LocalPersistentVolume.php b/app/Models/LocalPersistentVolume.php index a8bb991f1..96b550969 100644 --- a/app/Models/LocalPersistentVolume.php +++ b/app/Models/LocalPersistentVolume.php @@ -3,9 +3,10 @@ namespace App\Models; use Illuminate\Database\Eloquent\Casts\Attribute; +use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Str; -class LocalPersistentVolume extends BaseModel +class LocalPersistentVolume extends Model { protected $fillable = [ 'name', diff --git a/app/Models/ServerSetting.php b/app/Models/ServerSetting.php index 43a4f2e64..02c8e183e 100644 --- a/app/Models/ServerSetting.php +++ b/app/Models/ServerSetting.php @@ -7,7 +7,8 @@ use Illuminate\Database\Eloquent\Model; class ServerSetting extends Model { protected $fillable = [ - 'server_id' + 'server_id', + 'is_docker_installed', ]; public function server() { diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php index c488fb4f3..31ddf8720 100644 --- a/database/factories/UserFactory.php +++ b/database/factories/UserFactory.php @@ -18,7 +18,6 @@ class UserFactory extends Factory public function definition(): array { return [ - 'uuid' => Str::uuid(), 'email' => fake()->unique()->safeEmail(), 'email_verified_at' => now(), 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password diff --git a/database/migrations/2023_03_24_140712_create_server_settings_table.php b/database/migrations/2023_03_24_140712_create_server_settings_table.php index 8b5f432fa..bb5bcb271 100644 --- a/database/migrations/2023_03_24_140712_create_server_settings_table.php +++ b/database/migrations/2023_03_24_140712_create_server_settings_table.php @@ -17,6 +17,7 @@ return new class extends Migration $table->boolean('is_jump_server')->default(false); $table->boolean('is_build_server')->default(false); $table->boolean('is_validated')->default(false); + $table->boolean('is_docker_installed')->default(false); $table->foreignId('server_id'); $table->timestamps(); }); diff --git a/resources/views/errors/404.blade.php b/resources/views/errors/404.blade.php index 254df5756..95db58ffc 100644 --- a/resources/views/errors/404.blade.php +++ b/resources/views/errors/404.blade.php @@ -1,16 +1,21 @@ -
-
-

404

-

Page not found

-

Sorry, we couldn’t find the page you’re looking for.

-
- Go - back home - Contact support - +
+
+
+

404

+

How did you got here?

+

Sorry, we couldn’t find the page you’re looking for. +

+
-
+
diff --git a/resources/views/errors/419.blade.php b/resources/views/errors/419.blade.php index c09216e21..fce7c2a37 100644 --- a/resources/views/errors/419.blade.php +++ b/resources/views/errors/419.blade.php @@ -1,5 +1,20 @@ -@extends('errors::minimal') - -@section('title', __('Page Expired')) -@section('code', '419') -@section('message', __('Page Expired')) + +
+
+
+

419

+

This page is definitely old

+

Sorry, we couldn’t find the page you’re looking for. +

+ +
+
+
+
diff --git a/resources/views/livewire/server/form.blade.php b/resources/views/livewire/server/form.blade.php index aa0d24ce8..aa2c7ad0b 100644 --- a/resources/views/livewire/server/form.blade.php +++ b/resources/views/livewire/server/form.blade.php @@ -49,20 +49,30 @@

Quick Actions

- Check Connection + Check Server Details + + + @if ($server->settings->is_docker_installed) + Reconfigure Docker Engine + @else + Install Docker Engine + @endif {{-- Install Docker --}}
@endif +
+ +
@isset($uptime) -

Server Info

+

Server Info

Uptime: {{ $uptime }}

@isset($dockerVersion)

Docker Engine {{ $dockerVersion }}

@endisset @isset($dockerComposeVersion) -

{{ $dockerComposeVersion }}

+

Compose: {{ $dockerComposeVersion }}

@endisset
@endisset diff --git a/resources/views/livewire/server/proxy/status.blade.php b/resources/views/livewire/server/proxy/status.blade.php index e2a509ccb..d72cdc92d 100644 --- a/resources/views/livewire/server/proxy/status.blade.php +++ b/resources/views/livewire/server/proxy/status.blade.php @@ -1,6 +1,6 @@
@if ($server->settings->is_validated) -
+
@if ($server->extra_attributes->proxy_status === 'running') @elseif ($server->extra_attributes->proxy_status === 'restarting') diff --git a/scripts/install-docker.sh b/scripts/install-docker.sh deleted file mode 100644 index 292995fa1..000000000 --- a/scripts/install-docker.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -curl https://releases.rancher.com/install-docker/23.0.sh | sh -echo "Docker installed successfully" -echo '{ "live-restore": true }' >/etc/docker/daemon.json -systemctl restart docker