Databases AWS

Elasticvue on AWS User Guide

| Product: Elasticvue

Elasticvue on AWS

Elasticvue is a free, open source web GUI for Elasticsearch and OpenSearch. It gives you a clean browser interface to check cluster and node health, browse and manage indices and shards, run searches and queries, and work with your documents, without installing a desktop tool. This cloudimg image ships Elasticvue fully installed behind an nginx reverse proxy and pre-wired to a bundled single-node OpenSearch cluster, so a working cluster console is serving within minutes of launch. It can also connect to any of your own Elasticsearch or OpenSearch clusters.

  • Application: Elasticvue 1.15.0 (cars10/elasticvue, MIT)
  • Bundled backend: OpenSearch 3.7.0 (opensearchproject/opensearch, Apache-2.0)
  • Served on: port 80 (nginx) -> Elasticvue on loopback 127.0.0.1:8080; OpenSearch REST API proxied at /os/
  • Admin user: admin, with a per-instance OpenSearch password generated on first boot
  • Data disk: the OpenSearch cluster data lives on a dedicated EBS volume at /var/lib/opensearch

Architecture

browser --:80 nginx--> /        -> 127.0.0.1:8080  Elasticvue (GUI)
                       /os/      -> 127.0.0.1:9200  bundled OpenSearch (security on, HTTPS)
                       /healthz  -> 200 (unauthenticated health check)

Elasticvue and the OpenSearch cluster each run as a Docker container. nginx serves the Elasticvue interface on port 80 and reverse-proxies the OpenSearch REST API on the same origin at /os/, injecting the per-instance admin credential server-side so the browser connects to the bundled cluster with no configuration and without holding the password. The OpenSearch cluster data - your indices, documents and metadata - is stored under /var/lib/opensearch, a dedicated, independently resizable EBS volume, separate from the operating system disk. An unauthenticated health endpoint is served at /healthz for load-balancer and uptime checks.


Connecting to your instance

Connect over SSH on port 22 as the default login user for your operating system variant, using the EC2 key pair you selected at launch:

OS variant SSH login user Example
Ubuntu 24.04 ubuntu ssh -i your-key.pem ubuntu@<instance-public-ip>

The instance security group opens ports 22 (SSH), 80 (HTTP) and 443 (reserved for HTTPS).


Step 1 - Retrieve the generated admin password

On first boot a one-shot service creates the bundled OpenSearch cluster with an admin password unique to your instance, and records it in a root-only file. Read it over SSH:

sudo cat /root/elasticvue-credentials.txt
# Elasticvue on Ubuntu 24.04 - generated on first boot by elasticvue-firstboot.service
# These credentials are unique to this VM. Store them somewhere safe.

ELASTICVUE_URL=http://<instance-public-ip>/
OPENSEARCH_URL=http://<instance-public-ip>/os/
OPENSEARCH_USERNAME=admin
OPENSEARCH_PASSWORD=<generated-password>

Confirm the application stack is healthy at any time:

sudo docker ps
NAMES        IMAGE                                STATUS
elasticvue   cars10/elasticvue:1.15.0             Up 2 minutes
opensearch   opensearchproject/opensearch:3.7.0   Up 2 minutes
systemctl is-active docker nginx
curl -s http://127.0.0.1/healthz
active
active
ok

Step 2 - Open Elasticvue

Open http://<instance-public-ip>/ in your browser. Elasticvue connects to the bundled OpenSearch cluster automatically - the home page shows cluster health, node count, shard and index totals, and full cluster and version information straight away.

Elasticvue cluster overview


Step 3 - Browse and manage indices

Open the Indices tab to list every index with its health, document count, storage size and shard layout. From here you create new indices with New Index, and open, close, reindex, flush or delete an index from its actions menu. Use the filter box to narrow the list.

Index management


Step 4 - Search and edit documents

Open the Search tab, choose an index pattern, and run a search. Matching documents appear in a filterable, sortable table where you can inspect, edit and delete individual documents, and switch to the Aggregations view to summarise your data.

Search and documents


Step 5 - Inspect nodes and cluster state

The Nodes and Shards tabs show the live state of the cluster: per-node version, roles, load, CPU, system RAM, JVM heap and disk usage, and how shards are allocated. The REST tab gives you a request editor to run any call against the cluster API directly.

Cluster nodes


Step 6 - Query the bundled cluster from the shell

The bundled OpenSearch cluster is secured with the per-instance admin password. You can query it directly over HTTPS on loopback using the password from the credentials file - for example, list the indices:

PW=$(sudo grep '^OPENSEARCH_PASSWORD=' /root/elasticvue-credentials.txt | cut -d= -f2-)
curl -s -k -u "admin:$PW" 'https://127.0.0.1:9200/_cat/indices?v&s=index'

Create an index, add a document and read it back to confirm the cluster is fully functional:

PW=$(sudo grep '^OPENSEARCH_PASSWORD=' /root/elasticvue-credentials.txt | cut -d= -f2-)
curl -s -k -u "admin:$PW" -X PUT 'https://127.0.0.1:9200/demo/_doc/1?refresh=true' \
  -H 'Content-Type: application/json' -d '{"hello":"cloudimg"}' >/dev/null
curl -s -k -u "admin:$PW" 'https://127.0.0.1:9200/demo/_doc/1?pretty'

The new document also appears immediately in the Elasticvue Search tab.


Connecting to your own cluster

To administer an existing Elasticsearch or OpenSearch cluster, click the cluster name in the Elasticvue toolbar, add a new cluster, and enter its URI and credentials (or API key). Elasticvue keeps multiple clusters and lets you switch between them from the toolbar. The bundled OpenSearch cluster remains available as the default connection.


Where things live

Item Location
Elasticvue container sudo docker ps (name elasticvue)
OpenSearch container sudo docker ps (name opensearch)
Reverse proxy systemctl status nginx (port 80)
Elasticvue app port 127.0.0.1:8080 (loopback only)
OpenSearch REST API 127.0.0.1:9200 (loopback, HTTPS) or /os/ via nginx
Cluster data disk /var/lib/opensearch (dedicated EBS volume)
Admin credentials /root/elasticvue-credentials.txt (root-only, 0600)
Health endpoint http://<instance-public-ip>/healthz

Enabling HTTPS (recommended for production)

The image serves plain HTTP on port 80. For production, put the instance behind TLS - either terminate HTTPS at an AWS Application Load Balancer with an ACM certificate, or install a certificate directly in nginx for your domain. Port 443 is already open in the security group. Restrict inbound access to port 80 to trusted networks, since the bundled cluster is reachable through the browser interface.


Support

24/7 technical support is available from cloudimg by email and chat. We can help with deployment, HTTPS and reverse-proxy configuration, connecting Elasticvue to your own clusters, index and security configuration, storage and upgrade planning.

All product and company names are trademarks or registered trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.