Apache Pulsar

ChirpStack Pulsar integration publishes integration events to an Apache Pulsar instance. It reads integration events by directly subscribing to the Redis event stream.

Note: this integration must be installed as an additional component.



Debian / Ubuntu repository

ChirpStack provides pre-compiled binaries as Debian (.deb) packages. To activate this repository, execute the following commands:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1CE2AFD36DBCCA00

sudo echo "deb https://artifacts.chirpstack.io/packages/4.x/deb stable main" | sudo tee /etc/apt/sources.list.d/chirpstack_4.list
sudo apt update

ChirpStack also provides a repository for test-builds. To activate the test channel use the following commands (notice that stable has changed into testing):

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1CE2AFD36DBCCA00

sudo echo "deb https://artifacts.chirpstack.io/packages/4.x/deb testing main" | sudo tee /etc/apt/sources.list.d/chirpstack_4.list
sudo apt update


For Docker images, please refer to https://hub.docker.com/r/chirpstack/chirpstack-pulsar-integration


ChirpStack Pulsar Integration

To list all CLI options, start chirpstack-pulsar-integration with the --help flag. This will print:

Apache Pulsar integration for ChirpStack

Usage: chirpstack-pulsar-integration --config <FILE>

  -c, --config <FILE>  
  -h, --help           Print help
  -V, --version        Print version

Example configuration file:

  # Log level.

  # Server address or addresses.
  # Use rediss:// in case of a TLS secured connection.
  # Example formats:
  #   redis://
  #   rediss://
  #   redis://:password@
  #   redis://username:password@
  # Set multiple addresses when connecting to a cluster.

  # Redis Cluster.
  # Set this to true when the provided URLs are pointing to a Redis Cluster
  # instance.

  # Key prefix.
  # A key prefix can be used to avoid key collisions when multiple deployments
  # are using the same Redis database and it is not possible to separate
  # keys by database index (e.g. when using Redis Cluster, which does not
  # support multiple databases).

  # Consumer and consumer group name.
  # This integration reads the events directly from the Redis event stream.
  # If you are running multiple instances of this integration and you would
  # like to avoid receiving duplicated events, then all instances must share
  # the same consumer-group, each with an unique consumer name. For more
  # information about Redis Streams, see:
  # https://redis.io/docs/data-types/streams/#consumer-groups

  # Consumer name.

  # Pulsar server URL.

  # Event topic.

  # Authentication token (JWT).

  # Publish events as JSON instead of Protobuf (binary).

ChirpStack configuration

The Redis Stream storing the integration events retains a limited amount of payloads. This number can be configured by setting the device_event_log_max_history option in the ChirpStack Configuration.


Please refer to https://github.com/chirpstack/chirpstack-pulsar-integration/ for source-code.