data, 'server_id'); $teamId = data_get($event->data, 'team_id'); if (is_null($serverId) || is_null($teamId)) { return; } $server = Server::where('id', $serverId)->where('team_id', $teamId)->first(); if (is_null($server)) { return; } $server->markProxyTransitionFinished(); $proxyContainerName = 'coolify-proxy'; $status = getContainerStatus($server, $proxyContainerName); $server->proxy->set('status', $status); $server->save(); $versionCheckDispatched = false; if ($status === 'running') { $server->setupDefaultRedirect(); $server->setupMaintenancePages(); $server->setupDynamicProxyConfiguration(); $server->proxy->force_stop = false; $server->save(); // Check Traefik version after proxy is running if ($server->proxyType() === ProxyTypes::TRAEFIK->value) { $traefikVersions = get_traefik_versions(); if ($traefikVersions !== null) { // Version check job will dispatch ProxyStatusChangedUI when complete CheckTraefikVersionForServerJob::dispatch($server, $traefikVersions); $versionCheckDispatched = true; } else { Log::warning('Traefik version check skipped after proxy status change: versions.json data unavailable', [ 'server_id' => $server->id, 'server_name' => $server->name, ]); } } } // Only dispatch UI refresh if version check wasn't dispatched // (version check job handles its own UI refresh with updated version data) if (! $versionCheckDispatched) { ProxyStatusChangedUI::dispatch($server->team_id); } if ($status === 'created') { instant_remote_process([ dockerRemoveCommand('coolify-proxy'), ], $server); } } }