Install Sitecore Stream in a Local Sitecore Instance
Sitecore Stream introduces a modern, real-time, event-driven architecture to the Sitecore ecosystem, enabling more scalable and reactive digital experiences. While it’s built to thrive in the cloud, developers often want to test it locally, especially in Experience Platform (XP) environments. This blog post walks you through how to install and configure Sitecore Stream on a local Sitecore XP instance.
Prerequisites
Before installing Sitecore Stream, make sure your local environment is ready:
Environment Checklist:
- Sitecore XP 10.3 or 10.4 installed locally (via Docker or local IIS)
- Sitecore CLI installed and configured
- .NET 6 SDK (required for Sitecore Stream services)
- Node.js and NPM (optional, if customizing front-end components)
- Docker Desktop (optional if using containerized XP)
- Solr running (standard XP requirements)
- RabbitMQ (required for Sitecore Stream event bus)
Step-by-Step Installation Guide
Step 1: Install and Configure RabbitMQ
Sitecore Stream uses RabbitMQ for real-time messaging.
Option 1 – Docker RabbitMQ (Recommended):
docker run -d --hostname my-rabbit --name rabbitmq \
-p 5672:5672 -p 15672:15672 \
rabbitmq:3-management
Access the UI at: http://localhost:15672
Default credentials: guest/guest
Create a new virtual host (e.g., /sitecore
) and a new user with full permissions.
Step 2: Download Sitecore Stream Package
Download the official Sitecore Stream package (usually named like Sitecore.Stream.X.X.X.nupkg
) from the Sitecore Downloads Portal.
Extract it or install it via NuGet CLI if integrating via a custom solution.
Step 3: Configure Sitecore to Use Stream
Add the Stream module to your Sitecore instance:
If using Docker:
- Add the Sitecore Stream
.nupkg
or Docker layer to your container setup. - Modify
docker-compose.override.yml
to include the Sitecore Stream role or custom service.
If using Local IIS:
- Copy the Sitecore Stream files into the appropriate website
bin
,App_Config
andsitecore modules
folders. - Merge the
App_Config\Include\Sitecore.Stream.*
config files into your instance. - Verify that
Sitecore.Stream.EventBus
config includes RabbitMQ connection strings like:
<setting name="Stream.EventBus.RabbitMQ.HostName" value="localhost" />
<setting name="Stream.EventBus.RabbitMQ.VirtualHost" value="/sitecore" />
<setting name="Stream.EventBus.RabbitMQ.UserName" value="sitecoreuser" />
<setting name="Stream.EventBus.RabbitMQ.Password" value="password123" />
Step 4: Install Stream CLI Plugin (Optional but Recommended)
dotnet tool install --global Sitecore.Stream.Cli
This CLI helps manage publishers, consumers, and test the stream pipelines.
Step 5: Enable Relevant Stream Pipelines
Sitecore Stream is not active by default. You must enable relevant pipelines.
Edit or create configuration patches to activate:
<sitecore>
<stream>
<pipelines>
<event>
<processor type="Sitecore.Stream.Pipelines.CustomProcessor, Sitecore.Stream" />
</event>
</pipelines>
</stream>
</sitecore>
Step 6: Verify the Installation
- Go to RabbitMQ UI → check for messages in queues like
sitecore.item.saved
- Open Log Viewer and check for
Sitecore.Stream
log entries - Use the Stream CLI to test:
sitecore stream ping
Test Your Setup
Create or edit content in Sitecore and observe how the Stream processors capture and send events through RabbitMQ.
For example:
- Edit an item in the Content Editor.
- Check the queue
sitecore.item.saved
in RabbitMQ. - Log should reflect a successful event dispatch.
Pro Tips
- Security: Avoid using
guest
in production. Use a dedicated RabbitMQ user. - Performance: Don’t overload with too many Stream subscribers while testing.
- Debugging: Enable verbose logging for
Sitecore.Stream
to trace message processing.
Example Diagram
Here’s a high-level architecture overview of Sitecore Stream in a local environment:
+------------------+ +----------------+
| Sitecore XP App | -----> | RabbitMQ Broker|
+------------------+ +----------------+
| |
| Stream Pipelines |
V V
Event Consumers (e.g., Azure, MongoDB, Logging, etc.)
Resources
Principal Backend Engineer at Oshyn Inc.
With over 15 years of working as a .Net Software Developer, implementing applications with MCV, SQL, Sitecore, Episerver, and using methodologies like UML, CMMI, and Scrum. Furthermore, as a team player, I can be described as a self-motivator possessing excellent analytical, communication, problem-solving solving and decision-making.