Pulsar-express, a web interface for Apache Pulsar

Bruno Bonnin
4 min readJan 17, 2020

--

This story was originally posted on dev.to.

Photo by Jack Anstey on Unsplash

In this article, I am going to present you one of my side project: pulsar-express.

Pulsar-express aims to be a simple web application that allow the users to see informations about their Apache Pulsar clusters.

My initial goal was to provide something very simple (too much, maybe), easy to install, configure and run, and this article will show you these steps.

πŸš€ Install and run it

There are several ways to use pulsar-express:

πŸ‘‰ By cloning the projet and running it locally (see Development section)

πŸ‘‰ By running a docker image: docker run -it -p 3000:3000 bbonnin/pulsar-express

  • You can set a connection url in the command: docker run -it -p 3000:3000 -e PE_CONNECTION_URL=http://host.docker.internal:8080 bbonnin/pulsar-express
  • Important: the calls to the Pulsar API are done on server side (i.e. from the container), so your Pulsar must be reachable from the container (do not use localhost :)). A solution: you can add --network=host to the command line (but, it's only working on Linux...)

πŸ‘‰ By installing it using npm

If you want to configure connections (to be available to all users), you can:

  • Create a json file with the connections:
  • and set the env variable PE_CONFIG_FILE
  • Or you can also set a connection URL

πŸ” For a detailed explication about the security configuration, checkout the README of the project.

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

Home

πŸ“˜ Quick start

If you haven’t defined a connection at startup, 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)

Connections

Overview

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

Overview

Clusters

Informations about the clusters (URL, …). You can update some informations.

Clusters

Tenants

Informations about the tenants.

Tenants

In this page, you can also create a tenant.

Namespaces

Informations about the namespaces:

Namespaces

In this page, you can also create a namespace.

Topics

Informations about the topics:

Topics

In this page, you can also create a topic.

Details about a topic:

Topic

Functions

Informations about the functions:

Functions

Details about a function:

Function

πŸ’» Development

The repository of the app is: https://github.com/bbonnin/pulsar-express.

This app has been developed with Nuxt.js.

Here the main commands for the development steps:

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

For Docker:

  • Build: npm run docker-build
  • Test locally: npm run docker-run
  • Tag: docker tag pulsar-express USER/pulsar-express:VERSION
  • Publish: docker push USER/pulsar-express:VERSION

🚧 Conclusion

There is still a lot to be done to get a fully functional application.
If you are interested in the project, feel free to participate in the development of the application πŸ‘Œ πŸŽ‰

--

--

Bruno Bonnin

#NoSQL (Mongodb, Elasticsearch, ArangoDB), #BigData (Kafka, Pulsar, Spark, Hadoop, Storm, Zeppelin), #Web (Vuejs, API), #Java, #JavaScript, ...