From 4d69094a1fdf2f05d2309dbd65649079a36e7493 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Thu, 27 Apr 2023 12:52:13 +0200 Subject: [PATCH] autoupdate feature --- app/Http/Livewire/CheckUpdate.php | 14 ++++++++++- resources/views/components/navbar.blade.php | 4 ++-- .../views/livewire/check-update.blade.php | 3 +++ scripts/install.sh | 23 ++++++++++++++----- scripts/upgrade.sh | 4 ++++ 5 files changed, 39 insertions(+), 9 deletions(-) create mode 100644 scripts/upgrade.sh diff --git a/app/Http/Livewire/CheckUpdate.php b/app/Http/Livewire/CheckUpdate.php index 964c360f0..d2c6bb93b 100644 --- a/app/Http/Livewire/CheckUpdate.php +++ b/app/Http/Livewire/CheckUpdate.php @@ -4,7 +4,6 @@ namespace App\Http\Livewire; use App\Models\Server; use Illuminate\Support\Facades\Http; -use Illuminate\Support\Facades\Process; use Livewire\Component; class CheckUpdate extends Component @@ -14,6 +13,19 @@ class CheckUpdate extends Component protected $currentVersion; protected $image = 'ghcr.io/coollabsio/coolify'; + protected function upgrade() + { + $server = Server::where('ip', 'host.docker.internal')->first(); + if (!$server) { + return; + } + runRemoteCommandSync($server, ['curl -fsSL https://raw.githubusercontent.com/coollabsio/coolify/v4/scripts/upgrade.sh -o /data/coolify/source/upgrade.sh']); + runRemoteCommandSync($server, ['bash /data/coolify/source/upgrade.sh']); + } + public function forceUpgrade() + { + $this->upgrade(); + } public function checkUpdate() { $response = Http::get('https://get.coollabs.io/versions.json'); diff --git a/resources/views/components/navbar.blade.php b/resources/views/components/navbar.blade.php index dfceb777e..f31bc9656 100644 --- a/resources/views/components/navbar.blade.php +++ b/resources/views/components/navbar.blade.php @@ -13,6 +13,6 @@ @csrf - {{-- --}} - @endauth + + @endauth diff --git a/resources/views/livewire/check-update.blade.php b/resources/views/livewire/check-update.blade.php index 5ba478a43..dcd2f64b6 100644 --- a/resources/views/livewire/check-update.blade.php +++ b/resources/views/livewire/check-update.blade.php @@ -1,4 +1,7 @@
+ @env('production') + + @endenv {{ $updateAvailable ? 'Update available' : 'No updates' }}
diff --git a/scripts/install.sh b/scripts/install.sh index 40ab1e255..dd8215186 100644 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -23,18 +23,29 @@ mkdir -p /data/coolify/source chown -R 9999:root /data chmod -R 700 /data -if [ ! -z "$(ls -A /data/coolify/source/.gitignore)" ]; then - git -C /data/coolify/source fetch --all - git -C /data/coolify/source reset --hard origin/${COOLIFY_VERSION_BRANCH} -else - git -C /data/coolify/source clone --branch ${COOLIFY_VERSION_BRANCH} https://github.com/coollabsio/coolify . +if [ ! -f /data/coolify/source/docker-compose.yml ]; then + echo "Downloading docker-compose.yml..." + curl -fsSL https://raw.githubusercontent.com/coollabsio/coolify/${COOLIFY_VERSION_BRANCH}/docker-compose.yml -o /data/coolify/source/docker-compose.yml + echo "docker-compose.yml downloaded successfully" +fi + +if [ ! -f /data/coolify/source/docker-compose.prod.yml ]; then + echo "Downloading docker-compose.prod.yml..." + curl -fsSL https://raw.githubusercontent.com/coollabsio/coolify/${COOLIFY_VERSION_BRANCH}/docker-compose.prod.yml -o /data/coolify/source/docker-compose.prod.yml + echo "docker-compose.prod.yml downloaded successfully" +fi + +if [ ! -f /data/coolify/source/.env.example ]; then + echo "Downloading .env.example..." + curl -fsSL https://raw.githubusercontent.com/coollabsio/coolify/${COOLIFY_VERSION_BRANCH}/.env.example -o /data/coolify/source/.env.example + echo ".env.example downloaded successfully" fi # Copy .env.example if .env does not exist if [ ! -f /data/coolify/source/.env ]; then cp /data/coolify/source/.env.example /data/coolify/source/.env sed -i 's/APP_ENV=.*/APP_ENV=production/g' /data/coolify/source/.env - sed -i 's/APP_DEBUG=.*/APP_DEBUG=false/g' /data/coolify/source/.env + sed -i 's/APP_DEBUG=.*/APP_DEBUG=true/g' /data/coolify/source/.env sed -i "s|APP_KEY=.*|APP_KEY=base64:$(openssl rand -base64 32)|g" /data/coolify/source/.env sed -i "s|DB_PASSWORD=.*|DB_PASSWORD=$(openssl rand -base64 32)|g" /data/coolify/source/.env fi diff --git a/scripts/upgrade.sh b/scripts/upgrade.sh new file mode 100644 index 000000000..949ff9e85 --- /dev/null +++ b/scripts/upgrade.sh @@ -0,0 +1,4 @@ +#!/bin/bash +## Do not modify this file. You will lost the ability to autoupdate! + +docker compose --env-file /data/coolify/source/.env -f /data/coolify/source/docker-compose.yml -f /data/coolify/source/docker-compose.prod.yml up --pull always