From 7ea73c3db2ac751c86aceb8f7ebeaed49043d5c6 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Fri, 28 Apr 2023 15:08:48 +0200 Subject: [PATCH] better upgrade process for the user --- app/Http/Livewire/CheckUpdate.php | 22 --------- app/Http/Livewire/ForceUpgrade.php | 48 +++++++++++++++++++ app/Providers/RouteServiceProvider.php | 3 ++ resources/views/components/layout.blade.php | 35 +++++++++++--- resources/views/components/navbar.blade.php | 5 +- .../views/livewire/check-update.blade.php | 12 +---- .../views/livewire/force-upgrade.blade.php | 6 +++ 7 files changed, 90 insertions(+), 41 deletions(-) create mode 100644 app/Http/Livewire/ForceUpgrade.php create mode 100644 resources/views/livewire/force-upgrade.blade.php diff --git a/app/Http/Livewire/CheckUpdate.php b/app/Http/Livewire/CheckUpdate.php index 653110c62..9d56700de 100644 --- a/app/Http/Livewire/CheckUpdate.php +++ b/app/Http/Livewire/CheckUpdate.php @@ -13,28 +13,6 @@ class CheckUpdate extends Component protected $currentVersion; protected $image = 'ghcr.io/coollabsio/coolify'; - protected function upgrade() - { - $cdn = "https://coolify-cdn.b-cdn.net/files"; - $server = Server::where('ip', 'host.docker.internal')->first(); - if (!$server) { - return; - } - - runRemoteCommandSync($server, [ - "curl -fsSL $cdn/docker-compose.yml -o /data/coolify/source/docker-compose.yml", - "curl -fsSL $cdn/docker-compose.prod.yml -o /data/coolify/source/docker-compose.prod.yml", - "curl -fsSL $cdn/.env.production -o /data/coolify/source/.env.production", - "curl -fsSL $cdn/upgrade.sh -o /data/coolify/source/upgrade.sh", - "bash /data/coolify/source/upgrade.sh $this->latestVersion &" - ]); - $this->emit('updateInitiated'); - } - public function forceUpgrade() - { - $this->checkUpdate(); - $this->upgrade(); - } public function checkUpdate() { $response = Http::get('https://get.coollabs.io/versions.json'); diff --git a/app/Http/Livewire/ForceUpgrade.php b/app/Http/Livewire/ForceUpgrade.php new file mode 100644 index 000000000..0af7c690e --- /dev/null +++ b/app/Http/Livewire/ForceUpgrade.php @@ -0,0 +1,48 @@ +first(); + if (!$server) { + return; + } + runRemoteCommandSync($server, [ + "sleep 2" + ]); + remoteProcess([ + "sleep 10" + ], $server); + $this->emit('updateInitiated'); + } else { + $cdn = "https://coolify-cdn.b-cdn.net/files"; + $server = Server::where('ip', 'host.docker.internal')->first(); + if (!$server) { + return; + } + + runRemoteCommandSync($server, [ + "curl -fsSL $cdn/docker-compose.yml -o /data/coolify/source/docker-compose.yml", + "curl -fsSL $cdn/docker-compose.prod.yml -o /data/coolify/source/docker-compose.prod.yml", + "curl -fsSL $cdn/.env.production -o /data/coolify/source/.env.production", + "curl -fsSL $cdn/upgrade.sh -o /data/coolify/source/upgrade.sh", + ]); + runRemoteCommandSync($server, [ + "docker compose -f /data/coolify/source/docker-compose.yml -f /data/coolify/source/docker-compose.prod.yml pull", + ]); + + remoteProcess([ + "bash /data/coolify/source/upgrade.sh $this->latestVersion" + ], $server); + + $this->emit('updateInitiated'); + } + } +} diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index 4c26a1946..bd2368a5a 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -42,6 +42,9 @@ class RouteServiceProvider extends ServiceProvider protected function configureRateLimiting(): void { RateLimiter::for('api', function (Request $request) { + if ($request->path() === 'api/health') { + return Limit::perMinute(5000)->by($request->user()?->id ?: $request->ip()); + } return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip()); }); } diff --git a/resources/views/components/layout.blade.php b/resources/views/components/layout.blade.php index e81457201..f5901bdf9 100644 --- a/resources/views/components/layout.blade.php +++ b/resources/views/components/layout.blade.php @@ -27,20 +27,41 @@ @livewireScripts @auth @endauth diff --git a/resources/views/components/navbar.blade.php b/resources/views/components/navbar.blade.php index f31bc9656..451f3097a 100644 --- a/resources/views/components/navbar.blade.php +++ b/resources/views/components/navbar.blade.php @@ -13,6 +13,7 @@ @csrf - - @endauth + + + @endauth diff --git a/resources/views/livewire/check-update.blade.php b/resources/views/livewire/check-update.blade.php index efdc181f4..165f98797 100644 --- a/resources/views/livewire/check-update.blade.php +++ b/resources/views/livewire/check-update.blade.php @@ -1,14 +1,6 @@
- -
- Checking for updates... -
- @if (auth()->user()->teams->contains(0)) - -
- Updating Coolify... -
- @endif + @if ($updateAvailable) Update available @endif diff --git a/resources/views/livewire/force-upgrade.blade.php b/resources/views/livewire/force-upgrade.blade.php new file mode 100644 index 000000000..7e4f53cd4 --- /dev/null +++ b/resources/views/livewire/force-upgrade.blade.php @@ -0,0 +1,6 @@ +
+ @if (auth()->user()->teams->contains(0)) + + @endif +