{"record":{"id":"2469e7e7358356e3","repo":"coollabsio/coolify","slug":"prerequisites-missingcommands-are-not-install","errorCode":null,"errorMessage":"Prerequisites ({$missingCommands}) are not installed. Please install them before continuing or use the validation with installation endpoint.","messagePattern":"Prerequisites \\((.+?)\\) are not installed\\. Please install them before continuing or use the validation with installation endpoint\\.","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"app/Actions/Server/ValidateServer.php","lineNumber":91,"sourceCode":"            throw new \\Exception($this->error);\n        }\n        $this->supported_os_type = $server->validateOS();\n        if (! $this->supported_os_type) {\n            $this->error = 'Server OS type is not supported. Please install Docker manually before continuing: <a target=\"_blank\" class=\"text-black underline dark:text-white\" href=\"https://docs.docker.com/engine/install/#server\">documentation</a>.';\n            $server->update([\n                'validation_logs' => $this->error,\n            ]);\n            throw new \\Exception($this->error);\n        }\n\n        $validationResult = $server->validatePrerequisites();\n        if (! $validationResult['success']) {\n            $missingCommands = implode(', ', $validationResult['missing']);\n            $this->error = \"Prerequisites ({$missingCommands}) are not installed. Please install them before continuing or use the validation with installation endpoint.\";\n            $server->update([\n                'validation_logs' => $this->error,\n            ]);\n            throw new \\Exception($this->error);\n        }\n\n        $this->docker_installed = $server->validateDockerEngine();\n        $this->docker_compose_installed = $server->validateDockerCompose();\n        if (! $this->docker_installed || ! $this->docker_compose_installed) {\n            $this->error = 'Docker Engine is not installed. Please install Docker manually before continuing: <a target=\"_blank\" class=\"text-black underline dark:text-white\" href=\"https://docs.docker.com/engine/install/#server\">documentation</a>.';\n            $server->update([\n                'validation_logs' => $this->error,\n            ]);\n            throw new \\Exception($this->error);\n        }\n        $this->docker_version = $server->validateDockerEngineVersion();\n\n        if ($this->docker_version) {\n            return 'OK';\n        } else {\n            $this->error = 'Docker Engine is not installed. Please install Docker manually before continuing: <a target=\"_blank\" class=\"text-black underline dark:text-white\" href=\"https://docs.docker.com/engine/install/#server\">documentation</a>.';\n            $server->update([","sourceCodeStart":73,"sourceCodeEnd":109,"githubUrl":"https://github.com/coollabsio/coolify/blob/70b9acc42467278373e00de77abb40684e25b395/app/Actions/Server/ValidateServer.php#L73-L109","documentation":"Server::validatePrerequisites() (delegating to ValidatePrerequisites action) SSH-probes for required CLI tools on the host; on missing binaries it returns success=false with a 'missing' list, and ValidateServer throws with the comma-joined command names, suggesting either installing them or re-running via the validation-with-installation endpoint (which dispatches InstallPrerequisites: apt/dnf/zypper/pacman).","triggerScenarios":"Validating a bare-minimal OS install or slim container/host missing any of curl, wget, git or jq (the probes used by Coolify's remote commands), when prerequisites were not auto-installed.","commonSituations":"Hand-rolled VMs, hardened images, or skipping the install step during onboarding; Alpine where no automated install branch exists.","solutions":["Re-run validation with the installation endpoint enabled so InstallPrerequisites installs the missing tools.","Or install them manually (apt install -y curl wget git jq / dnf / zypper / pacman -Syu) and re-validate.","On Alpine there is no automated branch — use: apk add --no-cache curl wget git jq."],"exampleFix":"// from a shell on the target server (Debian/Ubuntu example)\n// before: validation fails with 'Prerequisites (jq, curl) are not installed...'\nsudo apt-get update -y && sudo apt-get install -y curl wget git jq\n// after: re-run server validation in Coolify — prerequisite check passes","handlingStrategy":"validation","validationCode":"$result = $server->validatePrerequisites(); // ['success' => bool, 'missing' => [...]]\nif (! $result['success']) {\n    return 'Missing prerequisites: '.implode(', ', $result['missing'])\n        .'. Use the validation-with-installation endpoint or install them manually.';\n}\nValidateServer::run($server);","typeGuard":"function prerequisitesSatisfied(\\App\\Models\\Server $server): bool\n{\n    return $server->validatePrerequisites()['success'] === true;\n}","tryCatchPattern":"try {\n    ValidateServer::run($server);\n} catch (\\Exception $e) {\n    if (str_contains($e->getMessage(), 'Prerequisites (')) {\n        // parse the command list from the message or re-run validatePrerequisites(),\n        // install them (or dispatch InstallPrerequisites), then retry validation\n    } else {\n        throw $e;\n    }\n}","preventionTips":["Include curl, wget, git and jq in server base images/cloud-init.","Use the validation endpoint with installation enabled for fresh hosts.","Remember Alpine has no automated install branch — install via apk manually."],"tags":["prerequisites","server-validation","packages","curl","wget","git","jq"],"backgroundTag":"missing-system-dependencies","analyzedSha":"70b9acc42467278373e00de77abb40684e25b395","analyzedAt":"2026-08-17T01:41:01.313Z","schemaVersion":2},"datasetVersion":"2026-08-17T04:17:16.089Z"}