diff --git a/internal/native/native.go b/internal/native/native.go index 9de8073..398344a 100644 --- a/internal/native/native.go +++ b/internal/native/native.go @@ -64,7 +64,10 @@ connector: return fmt.Errorf("write config: %w", err) } - // 3. Download installer if missing + // 3. Ensure NGINX is installed (Wallarm node requires it) + installNginx() + + // 4. Download installer if missing url := installerURL() if _, err := os.Stat(installerPath); os.IsNotExist(err) { fmt.Printf("[%s] Downloading installer from meganode.wallarm.com...\n", node.Name) @@ -233,3 +236,13 @@ WantedBy=multi-user.target func CreateNodesDir() error { return os.MkdirAll(NodesDir, 0755) } + +// installNginx ensures NGINX is present on the system. +func installNginx() { + if _, err := exec.LookPath("nginx"); err == nil { + return + } + fmt.Println("Installing NGINX (required by Wallarm node)...") + exec.Command("apt-get", "update", "-qq").Run() + exec.Command("apt-get", "install", "-y", "-qq", "nginx").Run() +}