Files
hassio-addons/elasticsearch
alexbelgium 02bbfa86c3 fix(elasticsearch): force fresh image pull, clarify non-root failure
The published 8.19.18 images are correct (verified: real ES 8.19.18,
run as root, migration + privilege-drop in place). But some upgrades
were left running a stale cached Elasticsearch 7.17.9 image that starts
as uid 1000, producing the reported "mv: cannot move '/data/config' ...
Permission denied" and "AccessDeniedException[.../data/nodes/0]".

- Bump version to 8.19.18-3 to force Home Assistant / Docker to pull a
  fresh image tag instead of reusing the cached one.
- Add an explicit root check on the first init pass (before any move or
  chown) so a non-root start fails with a clear, actionable message
  instead of the cryptic permission error, and wrap the config-archive
  mv with the same clear failure. The re-exec'd uid-1000 pass returns
  before this check, so the privilege drop still works.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-14 13:35:03 +02:00
..
2025-09-14 23:05:59 +00:00
2025-09-14 23:05:59 +00:00
2026-07-12 23:21:20 +00:00

Home assistant add-on: elasticsearch server

I maintain this and other Home Assistant add-ons in my free time: keeping up with upstream changes, HA changes, and testing on real hardware takes a lot of time (and some money). I use around 5-10 of my >110 addons so regularly I install test machines (and purchase some test services such as vpn) that I don't use myself to troubleshoot and improve the addons

If this add-on saves you time or makes your setup easier, I would be very grateful for your support!

Buy me a coffee Donate via PayPal

Addon informations

Version Ingress Arch

Codacy Badge GitHub Super-Linter Builder

Thanks to everyone having starred my repo! To star it click on the image below, then it will be on top right. Thanks!

Stargazers repo roster for @alexbelgium/hassio-addons

downloads evolution

About


Elasticsearch is the distributed, RESTful search and analytics engine at the heart of the Elastic Stack. You can use Elasticsearch to store, search, and manage data for:

  • Logs
  • Metrics
  • A search backend
  • Application monitoring
  • Endpoint security
  • ... and more!

To learn more about Elasticsearchs features and capabilities, see their product page .

Here, this addon is used to single node that can be called from other addons needing it.

Installation


The installation of this add-on is pretty straightforward and not different in comparison to installing any other add-on.

  1. Add my add-ons repository to your home assistant instance (in supervisor addons store at top right, or click button below if you have configured my HA) Open your Home Assistant instance and show the add add-on repository dialog with a specific repository URL pre-filled.
  2. Install this add-on.
  3. Click the Save button to store your configuration.
  4. Set the add-on options to your preferences
  5. Start the add-on.
  6. Check the logs of the add-on to see if everything went well.

Configuration

Elasticsearch runs as a single-node cluster accessible at http://homeassistant:9200. This addon has no web interface - it provides API endpoints for other applications.

API Endpoints

  • HTTP API: Port 9200 for REST API calls
  • Transport: Port 9300 for internal cluster communication

Options

No configuration options are available through the addon interface. Elasticsearch is pre-configured for single-node operation with:

  • Memory allocation: 1GB heap (ES_JAVA_OPTS)
  • Discovery type: single-node
  • Memory lock: enabled
  • Tini subreaper: enabled

Example Usage

Connect other applications to Elasticsearch using:

  • URL: http://homeassistant:9200
  • No authentication required (local network only)

Integration Examples

  • Nextcloud: Configure Full Text Search app to use this Elasticsearch instance
  • Home Assistant: Use with the Elasticsearch component for event publishing

Environment variables

Use the add-on env_vars option to pass extra environment variables (uppercase or lowercase names). See https://github.com/alexbelgium/hassio-addons/wiki/Add-Environment-variables-to-your-Addon-2 for details.

Elasticsearch settings can be set through variables named ES_SETTING_<SETTING_WITH_UNDERSCORES>; for example ES_SETTING_XPACK_SECURITY_ENABLED maps to xpack.security.enabled.

Security

To preserve the plain-HTTP behavior of previous versions (and compatibility with the Home Assistant Elasticsearch integration), xpack.security.enabled defaults to false. To enable Elasticsearch security, add ES_SETTING_XPACK_SECURITY_ENABLED with value true in env_vars.

Upgrading from 7.x

The upgrade to Elasticsearch 8.x is automatic and one-way:

  1. Take a Home Assistant backup of the add-on before updating.
  2. Update the add-on and start it. Elasticsearch upgrades the existing indices in place on first start — this can take a while on large datasets; do not stop the add-on during the first start.
  3. The previous bundled config directory is archived to /data/config.bak-<old-version>; re-apply any custom settings to the new config.

Downgrading afterwards is not supported by Elasticsearch — restore the backup instead.

Integration with HA

Component : https://community.home-assistant.io/t/elasticsearch-component-publish-home-assistant-events-to-elasticsearch/66877

Support

Create an issue on github