ZooNavigator
ZooNavigator is web-based GUI for ZooKeeper with cool features.
Compatible with ZooKeeper 3.4.x and ZooKeeper 3.5.x.
Table of Contents
Features
- Auth scheme authentication
- Recursive update of ZNode ACLs
- Recursive mass delete of ZNodes
- ZNode regex search tool
- ZNode ACL management
- ZNode data validation and syntax highlighting (json, yaml, xml)
Temporary connections
All connections to ZooKeeper are short lived. By default every connection is closed after 5 seconds of inactivity. This keeps number of simultaneous connections low, even when used by more users at once.
Usage
Via Docker Compose (recommended)
- Create
docker-compose.yml
file like the one below somewhere on your file system.
version: '2.1'
services:
web:
image: elkozmon/zoonavigator-web:latest
container_name: zoonavigator-web
ports:
- "8000:8000"
environment:
API_HOST: "api"
API_PORT: 9000
links:
- api
depends_on:
- api
restart: always
api:
image: elkozmon/zoonavigator-api:latest
container_name: zoonavigator-api
environment:
SERVER_HTTP_PORT: 9000
restart: always
- Run
docker-compose -f /path/to/docker-compose.yml up -d
. - Navigate to
http://localhost:8000
in your browser and enjoy.
To change the default configuration, edit the environment variables in Docker Compose file.
See DockerHub repositories for configuration options.
Via Docker
- Run ZooNavigator API server.
docker run -d \
--env SERVER_HTTP_PORT=9000 \
--name zoonavigator-api \
elkozmon/zoonavigator-api:latest
- Run ZooNavigator Web client. Here you need provide information on how to connect to ZooNavigator API. The easiest way to achieve this is by linking the containers.
docker run -d \
-p 8000:8000 \
--env API_HOST=api \
--env API_PORT=9000 \
--link zoonavigator-api:api \
--name zoonavigator-web \
elkozmon/zoonavigator-web:latest
- Navigate to
http://localhost:8000
in your browser.
See DockerHub repositories for configuration options.
From source (development only)
This setup requires NPM and SBT to be installed on your machine.
First run ZooNavigator API server.
- Clone API project repository
git clone https://github.com/elkozmon/zoonavigator-api.git
- Go to API project root
cd zoonavigator-api
- Run
sbt play/run
This starts Play server on your localhost on port 9000.
Then run ZooNavigator Web client.
- Clone Web project repository
git clone https://github.com/elkozmon/zoonavigator-web.git
- Go to Web project root
cd zoonavigator-web
- Run
npm install
- Run
npm run start
Now open http://localhost:4200
in your browser.
Screenshots
Troubleshooting
I'm getting error that says "Unable to establish connection with ZooKeeper."
Make sure that ZooNavigator API can access the ZooKeeper host(s) in the connection string you entered in the connect form. Especially in case when running ZooNavigator in Docker, since by default it runs on bridged networking mode.
Credits
This project is written in Play Framework and Angular Framework.
Web client UI is powered by Teradata Covalent Platform.
License
The project is licensed under Affero General Public License version 3.0 (AGPLv3).