From 81bcc4f78da767c6a524dc7088f8bad2192ef5ff Mon Sep 17 00:00:00 2001 From: Jeppe Bundgaard Date: Tue, 24 Feb 2026 09:28:41 +0100 Subject: [PATCH] Add docker-compose config for host-based Fleet Server and new `/ping` route - Introduce `docker-compose.fleet-host.yml` allowing Elastic Agent to connect to a host-installed Fleet Server. - Add `pingRoute` to provide a simple `/ping` endpoint returning "pong" with a timestamp. --- docker-compose.fleet-host.yml | 18 ++++++++++++++++++ services/nginx/app/routes/pingRoute.php | 21 +++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 docker-compose.fleet-host.yml create mode 100644 services/nginx/app/routes/pingRoute.php diff --git a/docker-compose.fleet-host.yml b/docker-compose.fleet-host.yml new file mode 100644 index 00000000..fce707aa --- /dev/null +++ b/docker-compose.fleet-host.yml @@ -0,0 +1,18 @@ +services: + # Do not start the in-container Fleet Server when using a host-installed Fleet Server + fleet-server: + profiles: [disabled] + + # Point the Elastic Agent container to the host Fleet Server + elastic-agent: + environment: + - FLEET_URL=http://host.docker.internal:8220 + # No change to 8200: APM intake stays exposed from this container + +## Usage (Windows + WSL host Fleet Server): +## 1) Stop containerized Fleet services to free port 8220: +## docker compose stop fleet-server elastic-agent +## 2) Install Fleet Server on WSL (see commands I provided), verify http://localhost:8220/api/status +## 3) Start Elastic Agent pointing to host Fleet: +## docker compose -f docker-compose.yml -f docker-compose.fleet-host.yml up -d elastic-agent +## 4) Verify in Kibana → Fleet → Agents: Fleet Server (host) healthy; Elastic Agent (container) healthy. \ No newline at end of file diff --git a/services/nginx/app/routes/pingRoute.php b/services/nginx/app/routes/pingRoute.php new file mode 100644 index 00000000..3ea9297f --- /dev/null +++ b/services/nginx/app/routes/pingRoute.php @@ -0,0 +1,21 @@ +get('/ping', function () { + global $response; + $response->success([ + 'message' => 'pong', + 'time' => date('c'), + ]); + }); + } +}