Redpanda Self-Managed Quickstart
Learn how to quickly start working with a local Redpanda cluster that comes with a free 30-day license for Enterprise Edition. You can also extend the trial license for a further 30 days.
Redpanda Self-Managed is a modern streaming platform, compatible with Kafka APIs, designed for speed, simplicity, and efficiency. In this quickstart, you:
-
Deploy a three-broker Redpanda cluster.
-
Explore streaming data in Redpanda Console.
-
Learn the basics of streaming with the Redpanda CLI (
rpk
). -
Deploy a streaming pipeline with Redpanda Connect.
-
Learn how to extend your trial license for an additional 30 days.
This quickstart uses Docker to run Redpanda, which is only for development and testing purposes. For production deployments, refer to the Linux deployment guides or the Kubernetes deployment guides. To download the Redpanda binary, see GitHub. Looking for a managed solution? You can also get started quickly with a hosted Redpanda cluster by signing up for Redpanda Cloud. |
Enterprise features
The Enterprise Edition of Redpanda Self-Managed adds advanced capabilities to help scale, manage, optimize, and secure your cluster.
All new Redpanda clusters include a built-in 30-day Enterprise Edition license, so you can evaluate enterprise features. Some features highlighted in this quickstart require an enterprise license:
-
Redpanda Console Authentication: Securely control login access to Redpanda Console.
-
Audit Logging: Track and monitor all user actions in a Redpanda topic.
-
Continuous Data Balancing: Automatically balance data across brokers to optimize performance.
-
Tiered Storage: Lower storage costs by offloading log segments to object storage.
Your trial license also includes additional enterprise features. For more information, see Redpanda Licenses and Enterprise Features.
Prerequisites
You need Docker Compose. For installation instructions, see the Docker Compose documentation.
To check if you have Docker Compose installed, run:
docker compose version
You should see the version of Docker Compose that’s installed on your local machine.
If you’re on Windows, use a compatible terminal that supports Unix-like commands. Or, consider using Windows Subsystem for Linux (WSL). |
Deploy Redpanda Self-Managed
To download, extract, and start Redpanda Self-Managed in Docker, run:
mkdir redpanda-quickstart && cd redpanda-quickstart && \
curl -sSL https://docs.redpanda.com/redpanda-quickstart.tar.gz | tar xzf - && \
cd docker-compose && docker compose up -d
1 | Create and navigate to the redpanda-quickstart directory. |
2 | Download and extract the archive.
Explore the downloaded files
|
3 | Start Docker Compose. |
When the containers are running, you have:
-
A Redpanda cluster with a 30-day free trial license.
-
A running data streaming pipeline generating data into the
logins
andtransactions
topics. -
A Wasm data transform processing data from
logins
intoedu-filtered-domains
. -
A secured instance of Redpanda Console with login authentication.
Explore Redpanda Console
Redpanda Console is a developer-friendly web UI for managing and debugging your Redpanda cluster and your applications. This section provides practical examples and scenarios to help you understand how to leverage Redpanda Console for different use cases, including data observability, Redpanda management, access control, and connectivity.
Redpanda Console was deployed as part of the docker-compose.yml
file and is running locally on port 8080.
Log in to Redpanda Console
Redpanda Console is configured with plain login credentials (enterprise feature) for an admin user called jane
. To start using Redpanda Console, you first need to log in with the credentials defined in the docker-compose.yml
file.
-
Open your web browser and go to http://localhost:8080/login.
-
Enter the following credentials:
-
Username:
jane
-
Password:
some-other-secret-password
This user is an admin user that has access to all features, including the Admin panel.
-
You should now see an overview of your cluster’s status, health, and brokers.

To view details about a specific broker, click View at the end of the row in the Broker Details table.

See also: Plain Login Setup.
View topics and filter messages
This quickstart deployment comes with two pre-configured topics, logins
and transactions
, actively receiving data from a Redpanda Connect pipeline. These topics simulate real-world data flows, enabling you to explore and interact with Redpanda Console features.
You can filter messages in topics using several methods:
-
Text search: Search for specific text within the message.
-
Partition offset filters: Set the start and end offsets to narrow down the message range.
-
JavaScript filters: Use JavaScript function bodies to create complex filters that run server-side, allowing you to filter through topics with millions of records.
Suppose you’re asked to find all transactions related to the .edu
domain. You can use a JavaScript filter to display only messages that include email addresses in that domain.
-
In the left menu, click Topics.
-
Click the transactions topic. When the topic’s page opens, the Messages tab is selected by default.
-
Click Add filter > JavaScript Filter.
-
Give your filter a name, such as "Find .edu domains".
-
Replace the default JavaScript code with the following:
return value.email.includes(".edu");
js -
Click Save to apply the filter.
You should see only messages that include the specific domain.
By default, the filter runs on the newest 50 messages. You can run the filter on older messages by changing the start offset. For example, to start from the oldest messages, select Beginning.
Explore Schema Registry
On the Schema Registry page, you see an overview of your schemas. You can create, manage, and inspect your schemas without leaving Redpanda Console.

See also: Use Schema Registry in Redpanda Console.
Configure access control for Redpanda
Managing access control lists (ACLs) can be complex, but Redpanda Console simplifies this with an intuitive interface.
This quickstart deployment includes a bootstrapped superuser with full administrative privileges. The superuser has unrestricted access to all topics, consumer groups, transactions, and cluster-level operations. By default, the credentials for the superuser are:
-
Username:
superuser
-
Password:
secretpassword
For improved security and role-based access control (RBAC), you should create additional users with restricted permissions as needed.
On the Security page, you can:
-
Create, view, and edit ACLs for topics, consumer groups, transactions, and the entire cluster.
-
Quickly understand what each principal (user) is authorized to do.
Suppose you’re onboarding a new team member who needs access to specific topics. You can use Redpanda Console to ensure users have the right permissions to perform their tasks.
-
In the left menu, click Security.
-
On the Users tab, click Create user.
-
Enter "Sasha" in the username field.
-
Enter "sashapassword" in the password field.
-
Click Create.

Click Done, and you see a new user called Sasha. This user has no permissions yet. To set permissions on the transactions
topic:
-
On the Access control page, open to the Roles tab.
-
Click Create role.
-
Enter "transaction-managers" as the role name.
-
In the topic selector dropdown, select Literal and enter "transactions" in the input field.
-
Under Operations, click the All dropdown and select Allow.
-
Scroll down to the bottom of the page and under Principals select Sasha from the dropdown.
-
Click Create.
Now Sasha has full access only to the topic called transactions.
To test these permissions, use rpk
to connect to Redpanda as the user Sasha.
-
Try to access the
logins
topic as Sasha:docker exec -it redpanda-0 rpk topic describe logins \ -X user=Sasha \ -X pass=sashapassword \ -X sasl.mechanism=SCRAM-SHA-256 \ -X brokers=redpanda-0:9092
bashYou are not authorized to view the topic.
SUMMARY ======= NAME logins PARTITIONS 0 ERROR TOPIC_AUTHORIZATION_FAILED: Not authorized to access topics: [Topic authorization failed.] CONFIGS ======= config response contained error: TOPIC_AUTHORIZATION_FAILED: Not authorized to access topics: [Topic authorization failed.]
-
Now try to access the
transactions
topic as Sasha:docker exec -it redpanda-0 rpk topic describe transactions \ -X user=Sasha \ -X pass=sashapassword \ -X sasl.mechanism=SCRAM-SHA-256 \ -X brokers=redpanda-0:9092
bashYou have access to this topic.
Example output
SUMMARY ======= NAME transactions PARTITIONS 1 REPLICAS 1 CONFIGS ======= KEY VALUE SOURCE cleanup.policy delete DEFAULT_CONFIG compression.type producer DEFAULT_CONFIG delete.retention.ms -1 DEFAULT_CONFIG flush.bytes 262144 DEFAULT_CONFIG flush.ms 100 DEFAULT_CONFIG initial.retention.local.target.bytes -1 DEFAULT_CONFIG initial.retention.local.target.ms -1 DEFAULT_CONFIG max.message.bytes 1048576 DEFAULT_CONFIG message.timestamp.type CreateTime DEFAULT_CONFIG redpanda.iceberg.delete true DEFAULT_CONFIG redpanda.iceberg.mode disabled DEFAULT_CONFIG redpanda.leaders.preference none DEFAULT_CONFIG redpanda.remote.delete true DEFAULT_CONFIG redpanda.remote.read true DEFAULT_CONFIG redpanda.remote.write true DEFAULT_CONFIG retention.bytes -1 DEFAULT_CONFIG retention.local.target.bytes -1 DEFAULT_CONFIG retention.local.target.ms 86400000 DEFAULT_CONFIG retention.ms 604800000 DEFAULT_CONFIG segment.bytes 134217728 DEFAULT_CONFIG segment.ms 1209600000 DEFAULT_CONFIG write.caching true DEFAULT_CONFIG
Explore Data transforms
Data transforms let you run common data streaming tasks on the Redpanda broker, like filtering, scrubbing, and transcoding. For example, you may have consumers that require you to redact credit card numbers or convert JSON to Avro.
This quickstart deployment comes with one transform function called regex
running in your cluster. Its job is to find records in the logins
topic that contain email addresses with the .edu
domain and add those to a new topic called edu-filtered-domains
.
In the left menu, click Transforms.
On the Transforms page, you see your transform. You can use Redpanda Console to manage and monitor your transforms.
The source code for the data transform function is in the docker-compose/transform/transform.go file that you downloaded. This file is commented to explain how it works.
|

See also:
View audit logs
Audit logs provide a record of all user actions. You can use these logs to track changes, troubleshoot issues, and maintain compliance with your organization’s security policies.
-
In the left menu, click Topics.
-
Click the Show internal topics checkbox.
-
Click the _redpanda.audit_log topic in the table.

See also: Audit Logging.
Start streaming
To start building a basic streaming application, you can use the Redpanda CLI (rpk
) to create a topic, produce messages to it, and consume messages from it. Each Redpanda broker comes preinstalled with rpk
, so you can use it inside one of the Redpanda broker’s Docker containers.
For simplicity, this quickstart uses the bootstrapped superuser (superuser
) to perform all operations. The superuser has full administrative privileges, making it convenient for setup and exploration. However, to enhance security in a production environment, Redpanda Data recommends creating users with restricted permissions for each task.
To use rpk
inside the Redpanda broker’s Docker container:
-
Get information about the cluster:
docker exec -it redpanda-0 rpk cluster info -X user=superuser -X pass=secretpassword
bash -
Create a topic called chat-room:
docker exec -it redpanda-0 rpk topic create chat-room \ --replicas 3 \ --topic-config redpanda.remote.read=true \ --topic-config redpanda.remote.write=true \ -X user=superuser \ -X pass=secretpassword
bash1 Set a replication factor of 3 to replicate the topic across all 3 brokers. This replication factor provides high availability and data durability. For more details, see Choose the replication factor. 2 Enable remote reads for this topic to read offloaded records from object storage. 3 Enable remote writes for this topic to offload older records to object storage. For more details, see Use Tiered Storage. Output:
TOPIC STATUS chat-room OK
bash -
Produce a message to the topic:
docker exec -it redpanda-0 rpk topic produce chat-room -X user=superuser -X pass=secretpassword
bash -
Enter a message, then press Enter:
Pandas are fabulous!
textExample output:
Produced to partition 0 at offset 0 with timestamp 1663282629789.
-
Press Ctrl+C to finish producing messages to the topic.
-
Consume one message from the topic:
docker exec -it redpanda-0 rpk topic consume chat-room --num 1 -X user=superuser -X pass=secretpassword
bashYour message is displayed along with its metadata:
{ "topic": "chat-room", "value": "Pandas are fabulous!", "timestamp": 1663282629789, "partition": 0, "offset": 0 }
json
Connect to the cluster externally
It’s often more practical to connect to a remote cluster from your local machine with rpk
. The docker-compose.yml
file configured the containers to expose ports on your localhost, so you can communicate with the cluster outside the Docker network. To do so, download rpk
on your local machine and configure it to connect to your cluster on the exposed ports.
-
Install
rpk
on your local machine:-
Linux
-
macOS
-
amd64
-
arm64
curl -LO https://github.com/redpanda-data/redpanda/releases/latest/download/rpk-linux-amd64.zip && mkdir -p ~/.local/bin && export PATH="~/.local/bin:$PATH" && unzip rpk-linux-amd64.zip -d ~/.local/bin/
bashcurl -LO https://github.com/redpanda-data/redpanda/releases/latest/download/rpk-linux-arm64.zip && mkdir -p ~/.local/bin && export PATH="~/.local/bin:$PATH" && unzip rpk-linux-arm64.zip -d ~/.local/bin/
bashYou can use rpk
on Windows only with WSL. However, commands that require Redpanda to be installed on your machine are not supported, such asrpk container
commands,rpk iotune
, andrpk redpanda
commands.-
If you don’t have Homebrew installed, install it.
-
To install or update
rpk
, run:brew install redpanda-data/tap/redpanda
bash
-
-
Create a profile to configure
rpk
to connect to your cluster:rpk profile create quickstart --from-profile rpk-profile.yaml
bashThe profile is configured in the docker-compose/rpk-profile.yaml
file that you downloaded. This file is commented to explain how it works. -
Get information about the cluster to test the connection:
rpk cluster info
bashThe Redpanda broker returns a list of all broker addresses, so rpk
can communicate with all brokers directly. Each broker returns its configuredadvertise-*
address that matches the port to which the initial connection has been made. You can see examples of these addresses in the Docker Compose file that you downloaded.
View offloaded data in Tiered Storage
Tiered Storage keeps local disk usage stable and performance consistent by offloading older data to object storage. You can also use Tiered Storage to recover clusters or topics, mount and unmount topics from a cluster, and more.
Redpanda supports Amazon S3, Azure ADLS, and Google GCS as object storage providers. For this quickstart, Redpanda uses MinIO as the object storage provider. MinIO is not supported for production deployments. |
-
Check the size of remote and local disks for the
chat-room
topic you created earlier:rpk cluster logdirs describe --topics chat-room
bashBROKER DIR TOPIC PARTITION SIZE ERROR 0 /var/lib/redpanda/data chat-room 0 611 0 remote://redpanda chat-room 0 319 1 /var/lib/redpanda/data chat-room 0 611 1 remote://redpanda chat-room 0 319 2 /var/lib/redpanda/data chat-room 0 611 2 remote://redpanda chat-room 0 319
-
Local storage:
/var/lib/redpanda/data
holds recent data. -
Remote storage:
remote://redpanda
holds offloaded data.
-
-
Open MinIO at http://localhost:9001/browser to view your data stored in the S3-compatible object store.
Login credentials:
-
Username:
minio
-
Password:
redpandaTieredStorage7
-
See also: Use Tiered Storage.
Deploy a pipeline with Redpanda Connect
Redpanda Connect is a powerful tool that allows you to build and manage data streaming pipelines. It supports hundreds of connectors for various systems, enabling seamless data ingestion, transformation, and routing between different sources and sinks. Using declarative YAML configuration files and the rpk
CLI, you can quickly set up and deploy complex data pipelines in Redpanda.
-
Deploy the example pipeline:
rpk connect run ../generate-profiles.yaml
bashThis pipeline is configured to generate fake user profiles and produce them to the
profiles
topic in your Redpanda cluster. It’ll run until you stop it.The pipeline configuration is in the docker-compose/generate-profiles.yaml
file that you downloaded. This file is commented to explain how it works. -
After a few seconds, stop the pipeline by pressing Ctrl+C.
-
Consume 10 messages from the
profiles
topic to confirm that the pipeline produced data to that topic.rpk topic consume profiles --num 10
bash
Extend your 30-day trial
Your initial trial license is valid for 30 days. To extend it by another 30 days:
-
Upload the new license to your running cluster using
rpk cluster license set
:rpk cluster license set <license>
bashReplace the
<license>
placeholder with your license.This command applies the new license to your Redpanda cluster, extending your access to enterprise features for another 30 days.
-
Restart Redpanda Console so that it can fetch the new license from the Redpanda brokers:
docker restart redpanda-console
bash
You can extend the trial license only once. |
See also: Redpanda Licensing.
Clean up
To reset your environment, shut down the running processes and delete the containers:
docker compose down
To delete the volumes along with all your cluster data:
docker compose down -v
Customize the Docker quickstart
To customize this quickstart, you can configure Redpanda, Redpanda Console, or Redpanda Connect using the provided Docker Compose file. This allows you to tailor the services to fit your specific requirements.
Redpanda broker properties
To configure the Redpanda services with broker configuration properties, pass properties with the --set
option in the redpanda start
command in your Docker Compose file.
Example:
docker-compose.yml
redpanda-0:
command:
- redpanda
- start
- --set pandaproxy_client.retries=6
1 | The service name in Docker Compose. |
2 | Overrides the default command for the Redpanda container. |
3 | Sets the pandaproxy_client.retries broker configuration property to 6 . |
Redpanda cluster properties
Cluster-level configurations are defined in the bootstrap.yml
file. This file is included in your Docker Compose setup. It contains essential settings that apply to the entire Redpanda cluster. You can find all cluster properties in Cluster Configuration Properties.
Example:
docker-compose.yml
redpanda:
volumes:
- ./bootstrap.yml:/etc/redpanda/.bootstrap.yaml
1 | Mounts the bootstrap.yml file from your local parent directory to the container’s /etc/redpanda/ directory. |
Redpanda Console configuration
Redpanda Console configuration is managed with the environment variable CONSOLE_CONFIG_FILE
. You can specify the path to your configuration file in the Docker Compose file.
Example:
docker-compose.yml
console:
environment:
CONSOLE_CONFIG_FILE: |
# Configure a connection to the Redpanda cluster
# See https://docs.redpanda.com/current/console/config/connect-to-redpanda/
kafka:
brokers: ["redpanda-0:9092"]
schemaRegistry:
enabled: true
urls: ["http://redpanda-0:8081","http://redpanda-1:8081","http://redpanda-2:8081"]
sasl:
enabled: true
username: superuser
password: secretpassword
mechanism: SCRAM-SHA-256
Redpanda Connect configuration
Existing data pipelines are configured using the CONNECT_CFG_FILE
environment variable in the connect
service. This environment variable contains YAML configuration settings for Redpanda Connect.
Example:
docker-compose.yml
connect:
environment:
CONNECT_CFG_FILE: |
input:
generate:
interval: 1s
mapping: |
let first_name = fake("first_name")
let last_name = fake("last_name")
root.user_id = counter()
root.name = $$first_name + " " + $$last_name
root.email = ($$first_name.slice(0,1) + $$last_name + "@" + fake("domain_name")).lowercase()
root.ip = fake("ipv4")
root.login_time = now()
pipeline:
processors:
- mapping: |
root = range(0, random_int(min:2, max:4)).map_each(cust -> this)
- unarchive:
format: "json_array"
- mapping: |
if batch_index() == 0 {
meta topic = "logins"
root = this
} else {
meta topic = "transactions"
root.user_id = this.user_id
root.email = this.email
root.index = batch_index() - 1
root.product_url = fake("url")
root.price = fake("amount_with_currency")
root.timestamp = now()
}
output:
kafka_franz:
seed_brokers: [ "redpanda-0:9092" ]
topic: $${! metadata("topic") }
sasl:
- mechanism: SCRAM-SHA-256
password: secretpassword
username: superuser
To create new data pipelines, run rpk connect run
, specifying the path to your own YAML configuration file:
rpk connect run <path-to-config>
Next steps
Contact Redpanda to discuss using Redpanda Enterprise Edition in production.