Elasticvue on AWS User Guide
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.

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.

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.

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.

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.