GitHub - elastic/start-local: Try Elasticsearch and Kibana locally (original) (raw)
π Try Elasticsearch and Kibana locally
Run Elasticsearch and Kibana on your local machine using a simple shell script. This setup uses Docker behind the scenes to install and run the services.
Important
This script is for local testing only. Do not use it in production! For production installations refer to the official documentation for Elasticsearch and Kibana.
π Features
This script comes with a one-month trial license. After the trial period, the license reverts to Free and open - Basic.
- Trial: Includes All features like the Playground, ELSER, semantic retrieval model, the Elastic Inference API and much more.
- Free and open - Basic: Includes features like vector search, ES|QL and much more.
For a complete list of subscriptions and features, see our subscriptions page.
π» System requirements
- 5 GB of available disk space
- Docker
- Works on Linux and macOS
- On Microsoft Windows it works using Windows Subsystem for Linux (WSL)
πββοΈββ‘οΈ Getting started
Setup
Run the start-local
script using curl:
curl -fsSL https://elastic.co/start-local | sh
This script creates an elastic-start-local
folder containing:
docker-compose.yml
: Docker Compose configuration for Elasticsearch and Kibana.env
: Environment settings, including the Elasticsearch passwordstart.sh
andstop.sh
: Scripts to start and stop Elasticsearch and Kibanauninstall.sh
: The script to uninstall Elasticsearch and Kibana
Select the version to install
By default, start-local
uses the latest stable version of Elastic Stack. If you want, you can specify a different version using the -v
parameter, as follows:
curl -fsSL https://elastic.co/start-local | sh -s -- -v 8.16.0
The previous command installs Elasticsearch and Kibana 8.16.0
.
Using the -v
parameter, you can also install beta releases, this can be useful for testing an upcoming release. For instance, you can install the 9.0.0-beta1
using the following command:
curl -fsSL https://elastic.co/start-local | sh -s -- -v 9.0.0-beta1
The 9.0.0-beta1
version was released on February 18, 2025.
Install only Elasticsearch
If you want to install only Elasticsearch, without Kibana, you can use the -esonly
option as follows:
curl -fsSL https://elastic.co/start-local | sh -s -- -esonly
This command can be useful if you don't have enough resources and want to test only Elasticsearch.
π Endpoints
After running the script:
- Elasticsearch will be running at http://localhost:9200
- Kibana will be running at http://localhost:5601
The script generates a random password for the elastic
user, displayed at the end of the installation and stored in the .env
file.
Caution
HTTPS is disabled, and Basic authentication is used for Elasticsearch. This configuration is for local testing only. For security, Elasticsearch and Kibana are accessible only via localhost
.
π API key
An API key for Elasticsearch is generated and stored in the .env
file as ES_LOCAL_API_KEY
. Use this key to connect to Elasticsearch with the Elastic SDK or REST API.
Check the connection to Elasticsearch using curl
in the elastic-start-local
folder:
source .env curl ESLOCALURLβH"Authorization:ApiKeyES_LOCAL_URL -H "Authorization: ApiKey ESLβOCALUβRLβH"Authorization:ApiKey{ES_LOCAL_API_KEY}"
π³ Start and stop the services
You can use the start
and stop
commands available in the elastic-start-local
folder.
To stop the Elasticsearch and Kibana Docker services, use the stop
command:
cd elastic-start-local ./stop.sh
To start the Elasticsearch and Kibana Docker services, use the start
command:
cd elastic-start-local ./start.sh
ποΈ Uninstallation
To remove the start-local
installation:
cd elastic-start-local ./uninstall.sh
Warning
This erases all data permanently.
π Logging
If the installation fails, an error log is created in error-start-local.log
. This file contains logs from Elasticsearch and Kibana, captured using the docker logs command.
βοΈ Customizing settings
To change settings (e.g., Elasticsearch password), edit the .env
file. Example contents:
ES_LOCAL_VERSION=8.15.2 ES_LOCAL_URL=http://localhost:9200 ES_LOCAL_CONTAINER_NAME=es-local-dev ES_LOCAL_DOCKER_NETWORK=elastic-net ES_LOCAL_PASSWORD=hOalVFrN ES_LOCAL_PORT=9200 KIBANA_LOCAL_CONTAINER_NAME=kibana-local-dev KIBANA_LOCAL_PORT=5601 KIBANA_LOCAL_PASSWORD=YJFbhLJL ES_LOCAL_API_KEY=df34grtk...==
Important
After changing the .env
file, restart the services using stop
and start
:
cd elastic-start-local ./stop.sh ./start.sh
π§ͺ Testing the installer
We use bashunit to test the script. Tests are in the /tests
folder.
Running tests
- Install bashunit:
curl -s https://bashunit.typeddevs.com/install.sh | bash - Run tests:
The tests run start-local.sh
and check if Elasticsearch and Kibana are working.
Note
For URL pipeline testing, a local web server is used. This requires PHP.