bbonnin / pulsar-express

Simple Web Interface for Apache Pulsar
Apache License 2.0
110 stars 20 forks source link
apache hacktoberfest pulsar ui web

GitHub license GitHub version

pulsar-express

Simple Web Interface for Apache Pulsar

Pulsar logo

Install

There are several ways to use pulsar-express:

Start it

$ pulsar-express

    ╭────────────────╮
    │ PULSAR EXPRESS │
    ╰────────────────╯

    => Open http://localhost:3000

Start it on a specific port

$ PORT=8000 pulsar-express

    ╭────────────────╮
    │ PULSAR EXPRESS │
    ╰────────────────╯

    => Open http://localhost:8000

If you want to configure connections (to be available to all users), you can:
* Create a json file with the connections:
```json
[
  { "name": "test cluster", 
     "url": "http://test-cluster-host:8080" },

  { "name": "integration cluster", 
     "url": "http://int-cluster-host:8080", 
     "token": "<YOUR_TOKEN>" },

  { "name": "prod cluster", 
     "url": "http://prod-cluster-host:8080", 
     "fctWorkerUrl": "http://prod-fct-worker-cluster-host:6750",
     "token": "<YOUR_TOKEN>" },
]

Without a name, the url will be used (hostname:port),

Or you can set a name:

export PE_CONNECTION_NAME=my-pulsar

A token if needed:

export PE_CONNECTION_TOKEN=


From there, you can connect with your browser to the url above !

![Pulsar express home](docs/home.png)

## Quick start

> If you haven't defined a connection, the first step is to go the `Connections` page and add a new connection. These connections are stored on client side (localstorage of your browser)

![Pulsar express connections](docs/connections.png)

### Overview

In this page, you can see some basic informations about your clusters.

![Pulsar express overview](docs/overview.png)

### Clusters

![Pulsar express clusters](docs/clusters.png)

### Tenants

![Pulsar express clusters](docs/tenants.png)

### Namespaces

![Pulsar express clusters](docs/namespaces.png)

### Topics

![Pulsar express topics](docs/topics.png)

![Pulsar express topics](docs/topic.png)

### Functions

![Pulsar express functions](docs/functions.png)

![Pulsar express function](docs/function.png)

## Security

To enable security in Pulsar, please read [https://pulsar.apache.org/docs/en/security-overview/](the docs).

For example, with token authentication with a secret key (more details, [https://pulsar.apache.org/docs/en/security-token-admin/](here)), 

* Create a secret key:
```bash
pulsar tokens create-secret-key --output my-secret.key --base64

authenticationEnabled: true authorizationEnabled: true authenticationProviders:

["standalone"]


## Development

This app has been developed with [Nuxt.js](https://nuxtjs.org).

``` bash
# install dependencies
$ npm install

# serve with hot reload at localhost:3000
$ npm run dev

# build for production and launch server
$ npm run build
$ npm start

For detailed explanation on how things work, checkout Nuxt.js docs.

For Docker:

How-to

To do

A lot of things of course :), but the main step is to change the architecture and add a backend instead of making the queries from the browser. This backend could provide api, cache, better management of configuration, ...

Misc

Icons: https://icones8.fr/

Credit

Pulsar Express is a single only tool which is using daily to manage and maintain a Pulsar cluster of over ten nodes in production environment at https://doopage.com.