A web-based Kafka message producer with UI for sending single, interval, and batch messages
1.0K
A lightweight, web-based Kafka message producer with a built-in UI. Connect to any Kafka broker and send messages in three modes — perfect for testing, debugging, and demos.
linux/amd64 and linux/arm64 (Intel, AMD, Apple Silicon)docker run -p 8990:8990 rabik/kafka-message-producer
Open http://localhost:8990 in your browser, enter your Kafka broker address, and start producing.
If you need a full stack with Kafka included:
services:
zookeeper:
image: confluentinc/cp-zookeeper:7.6.0
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ports:
- "2181:2181"
kafka:
image: confluentinc/cp-kafka:7.6.0
depends_on:
- zookeeper
ports:
- "9092:9092"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
producer-ui:
image: rabik/kafka-message-producer
ports:
- "8990:8990"
depends_on:
- kafka
docker compose up -d
Then open http://localhost:8990 and connect to localhost:9092.
| Variable | Default | Description |
|---|---|---|
PORT | 8990 | HTTP server port |
The UI calls these REST endpoints — you can also use them directly:
| Method | Path | Body |
|---|---|---|
| POST | /api/connect | { brokers, clientId? } |
| POST | /api/disconnect | — |
| POST | /api/produce/single | { topic, key?, value, headers? } |
| POST | /api/produce/count | { topic, key?, value, headers?, count } |
| POST | /api/produce/interval | { topic, key?, value, headers?, intervalMs } |
| POST | /api/produce/interval/stop | { intervalId? } (omit to stop all) |
| GET | /api/status | — |
| Architecture | Tag |
|---|---|
| x86-64 | latest |
| arm64 | latest |
Content type
Image
Digest
sha256:3851eb7c1…
Size
56.6 MB
Last updated
3 months ago
docker pull rabik/kafka-message-producer:7.2