<!DOCTYPE html> <html lang="{{ str_replace('_', '-', app()->getLocale()) }}"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>{{ $title ?? 'Coolify' }}</title> <meta name="csrf-token" content="{{ csrf_token() }}"> @vite(['resources/js/app.js', 'resources/css/app.css']) <style> [x-cloak] { display: none !important; } </style> @livewireStyles </head> <body x-data="confirmModal"> @auth <x-navbar /> @endauth <main> {{ $slot }} </main> <x-confirm-modal /> @livewireScripts @auth <script> function checkIfIamDead() { checkIfIamDeadInterval = setInterval(async () => { console.log('Checking server\'s pulse...') const res = await fetch('/api/health'); if (!res.ok) { console.log('I\'m dead. Charging... Standby... Bzz... Bzz...') } else { console.log('I\'m alive!'); checkHealth(); if (checkIfIamDeadInterval) clearInterval(checkIfIamDeadInterval); } return; }, 2000); } function checkHealth() { checkHealthInterval = setInterval(async () => { console.log('Checking server\'s health...') const res = await fetch('/api/health'); if (res.ok) { console.log('Server is back online. Reloading...') if (checkHealthInterval) clearInterval(checkHealthInterval); window.location.reload(); } else { console.log('Waiting for server to come back from dead...'); } return; }, 2000); } Livewire.on('updateInitiated', () => { let checkHealthInterval = null; let checkIfIamDeadInterval = null; console.log('Update initiated. Waiting for server to be dead...') checkIfIamDead(); }) </script> @endauth </body> </html>