Skip to content

Elasticsearch Lab

A standalone Elasticsearch 9.5.2 node with Kibana 9.5.2, running on the dev VM since 2026-08-27. It exists so people can experiment with real Elasticsearch without touching the platform’s search engine.

Logrite runs OpenSearch 3.3.1, which forked from Elasticsearch in 2021 and has diverged substantially since. Experiments run against OpenSearch cannot answer questions about Elasticsearch, because several things simply do not exist there:

Elasticsearch 9.5OpenSearch 3.3
Query languageES|QL (piped: FROM idx | STATS ... BY ...)PPL — different syntax and semantics
Semantic fieldssemantic_text, built-in inference endpointsML-commons plugin, different API
Client librarieselasticsearch / @elastic/elasticsearch v9opensearch-py / @opensearch-project/*
LicenceElastic Licence 2.0 / SSPL / AGPLApache 2.0

Running both side by side is the point: the lab answers “how does Elasticsearch behave”, while OpenSearch stays the system of record for the platform.

URLHost port
Elasticsearchhttps://dev-elastic.logrite.ai9201 → 9200
Kibanahttps://dev-kibana.logrite.ai5602 → 5601

Credentials are not published here — this site is publicly reachable. They are in ELASTICSEARCH.md and CREDENTIALS.md §6 in the private LogriteMasterControl repo.

Both are Coolify applications with build_pack=dockerimage: stock upstream images configured entirely through environment variables, with no Dockerfile and no git repo behind them. This is the same shape as the opensearch and opensearch-dashboards apps.

SettingValueWhy
discovery.typesingle-nodeOne node, no cluster formation
xpack.security.enabledtrueAuthentication is enforced; unauthenticated requests get 401
xpack.security.http.ssl.enabledfalseSee below
ES_JAVA_OPTS-Xms2g -Xmx2gMatches the OpenSearch heap
Container memory limit4 GB (ES) · 2 GB (Kibana)The dev VM has no swap, and a container’s reported memory includes reclaimable page cache
Network aliaselasticsearch · kibanaKibana reaches ES at http://elasticsearch:9200

Elasticsearch 9 defaults to self-signed TLS on its HTTP layer. That forces --insecure, a CA file, or verificationMode: none into every client — the friction that OpenSearch’s demo certificates already impose across this platform. The lab disables HTTP-layer TLS instead and lets Cloudflare terminate TLS at the tunnel edge, so traffic is encrypted where it crosses the internet and no client needs special handling. Authentication is unaffected and stays on.

ops/elasticsearch/install.sh in LogriteMasterControl recreates both apps, their environment, volumes, DNS records and tunnel ingress rules from nothing. It is idempotent.

That script exists because a Coolify application lives only as rows in the coolify-db container, and that database has been lost before — the 2026-08-03 host reflash destroyed every app definition on the machine.