Files
hassio-addons/elasticsearch
alexbelgium 94f59489f0 fix(elasticsearch): stay root at runtime, fix upgrade permission failure
Reported: on upgrade from an existing 7.17.9 install, the add-on failed
to start with "mv: cannot move '/data/config' to
'/data/config.bak-7.17.9': Permission denied".

Root cause: a previous fix in this same release restored `USER 1000:0`
at the end of the Dockerfile to match the upstream base image's own
final USER directive. But the upstream 8.19 entrypoint no longer drops
privileges itself (confirmed: it execs elasticsearch directly, no
gosu/chroot dance), and existing installs have /data owned by root
(7.17.9's default image variant runs fully as root). A non-root
container can never chown or move that data.

Revert to root at runtime, matching how this add-on always ran and
matching its own AppArmor profile (chown, setuid, setgid, sys_chroot,
mount capabilities — all meaningless for a non-root process anyway).
Root stays required for the build-time entrypoint patch too, unchanged
from the prior fix.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-14 12:11:26 +02:00
..
2025-09-14 23:05:59 +00:00
2025-09-14 23:05:59 +00:00
2026-07-10 12:51:30 +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