Simple Web Interface for Apache Pulsar
Simple Web Interface for Apache Pulsar
There are several ways to use pulsar-express
:
Development
section)docker run -it -p 3000:3000 bbonnin/pulsar-express
docker run -it -p 3000:3000 -e PE_CONNECTION_URL=http://host.docker.internal:8080 bbonnin/pulsar-express
--network=host
to the command line (but, it's only working on Linux...)npm
# Install it globally
$ npm install pulsar-express -g
# 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:
[
{ "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>" },
]
PE_CONFIG_FILE
export PE_CONFIG_FILE=/path/to/my/config.json
export PE_CONNECTION_URL=http://pulsar-host:8080
# 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=<YOUR_TOKEN>
From there, you can connect with your browser to the url above !
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)
In this page, you can see some basic informations about your clusters.
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/),
pulsar tokens create-secret-key --output my-secret.key --base64
pulsar tokens create --secret-key file:///path/to/my-secret.key \
--subject pulsar-express
conf/broker.conf
or conf/standalone.conf
)authenticationEnabled=true
authorizationEnabled=true
authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderToken
superUserRoles=pulsar-express
tokenSecretKey=file:///path/to/my-secret.key
conf/functions_worker.yml
)clientAuthenticationPlugin: "org.apache.pulsar.client.impl.auth.AuthenticationToken"
clientAuthenticationParameters: "token:<YOUR_TOKEN>"
authenticationEnabled: true
authorizationEnabled: true
authenticationProviders:
- org.apache.pulsar.broker.authentication.AuthenticationProviderToken
properties:
tokenSecretKey: "file:///path/to/my-secret.key"
superUserRoles:
- pulsar-express
curl localhost:8080/admin/v2/clusters -H "Authorization: Bearer <YOUR_TOKEN>"
["standalone"]
This app has been developed with Nuxt.js.
# 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:
npm run docker-build
npm run docker-run
docker tag pulsar-express USER/pulsar-express:VERSION
docker push USER/pulsar-express:VERSION
Change the base URL (work in progress, it's a quick fix):
export PE_BASE_URL=pulsar-express
npm run docker-build
(or docker build --build-arg BASE_URL=${PE_BASE_URL} -t pulsar-express .
)docker run -it -p 3000:3000 -e PE_CONNECTION_URL=http://host.docker.internal:8080 -e PE_BASE_URL=${PE_BASE_URL} pulsar-express
When running the image, do not forget to set PE_BASE_URL !
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, ...
Icons: https://icones8.fr/
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.