diff --git a/app/Actions/Docker/GetContainersStatus.php b/app/Actions/Docker/GetContainersStatus.php index 0779da31d..ed563eaae 100644 --- a/app/Actions/Docker/GetContainersStatus.php +++ b/app/Actions/Docker/GetContainersStatus.php @@ -651,8 +651,9 @@ class GetContainersStatus // $this->server->team?->notify(new ContainerStopped($containerName, $this->server, $url)); } - // Check if proxy is running - $this->server->proxyType(); + if (! $this->server->proxySet() || $this->server->proxy->force_stop) { + return; + } $foundProxyContainer = $this->containers->filter(function ($value, $key) { if ($this->server->isSwarm()) { return data_get($value, 'Spec.Name') === 'coolify-proxy_traefik'; diff --git a/app/Actions/Proxy/StartProxy.php b/app/Actions/Proxy/StartProxy.php index 8cb3c644e..4ef9618d0 100644 --- a/app/Actions/Proxy/StartProxy.php +++ b/app/Actions/Proxy/StartProxy.php @@ -35,7 +35,7 @@ class StartProxy "echo 'Creating required Docker Compose file.'", "echo 'Starting coolify-proxy.'", 'docker stack deploy -c docker-compose.yml coolify-proxy', - "echo 'Proxy started successfully.'", + "echo 'Successfully started coolify-proxy.'", ]); } else { $caddfile = 'import /dynamic/*.caddy'; @@ -53,7 +53,7 @@ class StartProxy 'fi', "echo 'Starting coolify-proxy.'", 'docker compose up -d --remove-orphans', - "echo 'Proxy started successfully.'", + "echo 'Successfully started coolify-proxy.'", ]); $commands = $commands->merge(connectProxyToNetworks($server)); } diff --git a/app/Jobs/ServerCheckJob.php b/app/Jobs/ServerCheckJob.php index 7fde44f49..39d4aa0c0 100644 --- a/app/Jobs/ServerCheckJob.php +++ b/app/Jobs/ServerCheckJob.php @@ -69,7 +69,9 @@ class ServerCheckJob implements ShouldBeEncrypted, ShouldQueue return 'No containers found.'; } GetContainersStatus::run($this->server, $this->containers, $containerReplicates); - $this->checkLogDrainContainer(); + if ($this->server->isLogDrainEnabled()) { + $this->checkLogDrainContainer(); + } } } catch (\Throwable $e) { @@ -115,9 +117,6 @@ class ServerCheckJob implements ShouldBeEncrypted, ShouldQueue private function checkLogDrainContainer() { - if (! $this->server->isLogDrainEnabled()) { - return; - } $foundLogDrainContainer = $this->containers->filter(function ($value, $key) { return data_get($value, 'Name') === '/coolify-log-drain'; })->first(); diff --git a/app/Livewire/Server/Proxy/Status.php b/app/Livewire/Server/Proxy/Status.php index d23d7fc20..20db4dad4 100644 --- a/app/Livewire/Server/Proxy/Status.php +++ b/app/Livewire/Server/Proxy/Status.php @@ -49,6 +49,10 @@ class Status extends Component if ($this->server->proxy->status === 'running') { $this->polling = false; $notification && $this->dispatch('success', 'Proxy is running.'); + } elseif ($this->server->proxy->status === 'exited' and ! $this->server->proxy->force_stop) { + $notification && $this->dispatch('error', 'Proxy has exited.'); + } elseif ($this->server->proxy->force_stop) { + $notification && $this->dispatch('error', 'Proxy is stopped manually.'); } else { $notification && $this->dispatch('error', 'Proxy is not running.'); } diff --git a/bootstrap/helpers/proxy.php b/bootstrap/helpers/proxy.php index c4c15b8fe..e90d54a78 100644 --- a/bootstrap/helpers/proxy.php +++ b/bootstrap/helpers/proxy.php @@ -96,6 +96,8 @@ function connectProxyToNetworks(Server $server) "echo 'Connecting coolify-proxy to $network network...'", "docker network ls --format '{{.Name}}' | grep '^$network$' >/dev/null || docker network create --driver overlay --attachable $network >/dev/null", "docker network connect $network coolify-proxy >/dev/null 2>&1 || true", + "echo 'Successfully connected coolify-proxy to $network network.'", + "echo 'Proxy started and configured successfully!'", ]; }); } else { @@ -104,6 +106,8 @@ function connectProxyToNetworks(Server $server) "echo 'Connecting coolify-proxy to $network network...'", "docker network ls --format '{{.Name}}' | grep '^$network$' >/dev/null || docker network create --attachable $network >/dev/null", "docker network connect $network coolify-proxy >/dev/null 2>&1 || true", + "echo 'Successfully connected coolify-proxy to $network network.'", + "echo 'Proxy started and configured successfully!'", ]; }); } @@ -217,7 +221,6 @@ function generate_default_proxy_configuration(Server $server) } } elseif ($proxy_type === 'CADDY') { $config = [ - 'version' => '3.8', 'networks' => $array_of_networks->toArray(), 'services' => [ 'caddy' => [ @@ -236,12 +239,9 @@ function generate_default_proxy_configuration(Server $server) '80:80', '443:443', ], - // "healthcheck" => [ - // "test" => "wget -qO- http://localhost:80|| exit 1", - // "interval" => "4s", - // "timeout" => "2s", - // "retries" => 5, - // ], + 'labels' => [ + 'coolify.managed=true', + ], 'volumes' => [ '/var/run/docker.sock:/var/run/docker.sock:ro', "{$proxy_path}/dynamic:/dynamic", diff --git a/resources/views/livewire/server/proxy/status.blade.php b/resources/views/livewire/server/proxy/status.blade.php index 2a2dd3be9..621e0bc8c 100644 --- a/resources/views/livewire/server/proxy/status.blade.php +++ b/resources/views/livewire/server/proxy/status.blade.php @@ -3,10 +3,12 @@ @elseif (data_get($server, 'proxy.status') === 'restarting') - @else + @elseif (data_get($server, 'proxy.force_stop')) + @elseif (data_get($server, 'proxy.status') === 'exited') + + @else + @endif - @if (data_get($server, 'proxy.status') === 'running') - Refresh - @endif + Refresh