heyer.systems

Elasticsearch

Elasticsearch 9 from Elastic's APT repository (key pinned in iac-core), on localhost:9200 only, without login, 1 GiB heap

elasticsearch LXCVM

Add to a guest

In the guest as root – container and VM alike:

update --add-modules elasticsearch

Runs a normal update and installs the module on the way.

From the Proxmox node, without logging in:

pct exec <ID> -- update --add-modules elasticsearch   # container
ssh root@<IP> update --add-modules elasticsearch

Choose when creating a guest

Without a dialog, on the Proxmox node:

IAC_NONINTERACTIVE=1 var_modules=auto-update,elasticsearch \
  bash -c "$(curl -fsSL https://iac.heyer.systems/<app>/ct.sh)"

var_modules replaces the app's preselection – keep auto-update in the list if you want it. Interactive: choose “advanced” in the dialog, or tick the module in the generator on the app page.

Remove

update --remove-modules elasticsearch

Removes the module's packages, services, firewall rules and configuration again. Data stays. Apps that require the module keep it – it cannot be removed there.

Details

Elasticsearch 9 from Elastic’s APT repository (key pinned in iac-core). A single node on localhost:9200 only, without login and TLS – like PostgreSQL and Valkey meant for the app in the same guest.

The heap is fixed at 1 GiB so the app keeps enough RAM. Set more in /etc/elasticsearch/jvm.options.d/90-local.options:

-Xms2g
-Xmx2g

Then systemctl restart elasticsearch. When the module is removed, only the service stops – the index in /var/lib/elasticsearch stays.