Back to Apps
elasticsearch

Deploy elasticsearch on Your Own Server

Elasticsearch is a search engine based on the Lucene library

πŸ“¦ Other

Want to deploy elasticsearch on your server faster? Try Senate with one-command setup, automatic HTTPS and monitoring.

Get Started

What is elasticsearch?

Elasticsearch is a distributed, RESTful search and analytics engine. This image can be used for single nodes and cluster setups. IMPORTANT: Be sure to extend the virtual memory on all your hosts! (increase "echo 'vm.max_map_count=262144' >> /etc/sysctl.conf" and restart "sysctl -p")

Self-Host elasticsearch

Follow these steps to deploy on your own server.

1

Install Docker

Skip this step if Docker is already installed on your server.

curl -fsSL https://get.docker.com | sh
2

Configure

Customize the settings below. Defaults work for most cases.

General
3

Deploy

Copy the configuration and run it on your server.

services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.4.1
    environment:
      CLI_JAVA_OPTS: -Xms512m -Xmx512m
      cluster.name: elasticsearch-cluster
      discovery.type: single-node
      http.port: "9200"
      node.name: elasticsearch
      xpack.security.enabled: "false"
    volumes:
      - elasticsearch-elasticsearch-data:/usr/share/elasticsearch/data
volumes:
  elasticsearch-elasticsearch-data: {}

Then run:

docker compose up -d
4

Access

Once started, access your app at http://localhost:80

Why Self-Host elasticsearch?

Full Data Ownership

Your data stays on your servers. No third-party access.

No Monthly Fees

Pay only for your server. No per-seat or usage charges.

Complete Control

Customize, backup, and scale on your own terms.

Privacy & Compliance

Meet GDPR, HIPAA, or internal security requirements.

Technical Details

Docker Image

docker.elastic.co/elasticsearch/elasticsearch:${elasticsearch_version}

Want to go faster?

Try Senate! Senate handles Docker, HTTPS, updates, and monitoring for you. Deploy any of our 300+ apps with a single command.

Install on any Linux server:

sh -c "$(curl -sSL https://get.senate.sh)"