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>
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!
Addon informations
Thanks to everyone having starred my repo! To star it click on the image below, then it will be on top right. Thanks!
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 Elasticsearch’s 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.
- 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)
- Install this add-on.
- Click the
Savebutton to store your configuration. - Set the add-on options to your preferences
- Start the add-on.
- 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:
- Take a Home Assistant backup of the add-on before updating.
- 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.
- 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
Support
Create an issue on github
