This is an automated email from the ASF dual-hosted git repository.

dominikriemer pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/streampipes-website.git


The following commit(s) were added to refs/heads/dev by this push:
     new fcc2aaf65 feat: Add all-in-one image to quick start guide (#241)
fcc2aaf65 is described below

commit fcc2aaf6509545a93bfe6df68d60f6cffed37c2a
Author: Dominik Riemer <[email protected]>
AuthorDate: Fri Oct 30 08:01:30 2026 +0100

    feat: Add all-in-one image to quick start guide (#241)
---
 .htaccess                                          |  11 +
 docs/02_quick-start-guide.md                       | 273 ++++++++-------------
 nginx_config/default.conf                          |   9 +
 .../src/components/download/DownloadSection.tsx    |   2 +-
 website-v2/src/components/home/Homepage.tsx        |   2 +-
 website-v2/static/img/2026/all-in-one-adapters.png | Bin 0 -> 531304 bytes
 .../static/img/2026/all-in-one-cnc-dashboard.png   | Bin 0 -> 735828 bytes
 .../static/img/2026/all-in-one-dashboard.png       | Bin 0 -> 652777 bytes
 .../static/img/home/dashboard-water-storage.webp   | Bin 0 -> 87542 bytes
 9 files changed, 127 insertions(+), 170 deletions(-)

diff --git a/.htaccess b/.htaccess
index 0f93c2efa..efb8b60ec 100644
--- a/.htaccess
+++ b/.htaccess
@@ -35,6 +35,17 @@ RewriteRule ^docs/docs/deploy-docker\.html$ 
/docs/configure-operate-deployment/
 RewriteRule ^docs/docs/extend-cli\.html$ /docs/extend-cli/ [R=301,L]
 RewriteRule ^docs/docs/extend-sdk-functions\.html$ /docs/extend-sdk-functions/ 
[R=301,L]
 
+# Folders without an index page (Docusaurus generates none for /docs/ and the
+# version roots): send visitors to the first docs page instead of showing an
+# Apache directory listing, and disable listings everywhere else.
+Options -Indexes
+RewriteRule ^docs/?$ /docs/user-guide-introduction/ [R=301,L]
+RewriteRule ^docs/(0\.98\.0|0\.97\.0|0\.95\.1)/?$ 
/docs/$1/user-guide-introduction/ [R=301,L]
+RewriteRule ^docs/pe/?$ /docs/configure-operate-extensions/ [R=301,L]
+RewriteRule ^docs/(0\.98\.0|0\.97\.0|0\.95\.1)/pe/?$ 
/docs/$1/use-install-pipeline-elements/ [R=301,L]
+RewriteRule ^docs/docs/?$ /docs/docs/python/ [R=301,L]
+RewriteRule ^community/?$ /community/get-involved/ [R=301,L]
+
 # Resolve Docusaurus clean URLs in the static ASF deployment.
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
diff --git a/docs/02_quick-start-guide.md b/docs/02_quick-start-guide.md
index ea51f4fe2..f6437b33d 100644
--- a/docs/02_quick-start-guide.md
+++ b/docs/02_quick-start-guide.md
@@ -1,20 +1,20 @@
 ---
 id: quick-start-guide
 title: Quick Start Guide
-description: "Install Apache StreamPipes with Docker Compose and build your 
first workflow: connect a data source, persist a dataset, create a chart and 
add it to a dashboard."
+description: "Try Apache StreamPipes in one minute with the all-in-one Docker 
image, or install it with Docker Compose, then build your first flow: connect a 
data source, persist a dataset, create a chart and add it to a dashboard."
 sidebar_label: "Quick Start Guide"
 ---
 
-import DownloadSection from 
'@site/src/components/download/DownloadSection.tsx';
 import StepFlow from '@site/src/components/docs/StepFlow.tsx';
-import DocVisualPlaceholder from 
'@site/src/components/docs/DocVisualPlaceholder.tsx';
 import UseCaseExample from '@site/src/components/docs/UseCaseExample.tsx';
 import ScreenshotFigure from '@site/src/components/docs/ScreenshotFigure';
-import ScreenshotComparison from 
'@site/src/components/docs/ScreenshotComparison';
 
-This guide helps you get from a fresh installation to a first working result 
in StreamPipes.
+There are two ways to get started, and both end in the same place: a running 
StreamPipes with live data on a dashboard.
 
-**What you will have in about ten minutes:** a running StreamPipes instance, 
one adapter delivering simulated machine data, a dataset that keeps its 
history, a chart on that dataset, and a dashboard that shows the chart. No 
external machine or broker is needed; the built-in machine data simulator 
provides the data.
+- **Try it in a minute.** One `docker run` starts the complete platform in a 
single container, with a demo plant already set up. Best for a first look, a 
demo or a workshop.
+- **Install it.** Docker Compose starts the regular multi-container setup that 
you can keep and grow. Best when you want to connect your own machines.
+
+Whichever you pick, the second half of this page walks you through building 
your own first flow: an adapter, a dataset, a chart and a dashboard. That part 
takes about ten minutes and needs no external machine or broker.
 
 <ScreenshotFigure
 src="/img/2026/dashboard-create.png"
@@ -22,44 +22,71 @@ alt="The dashboard you will build in this guide"
 title="The result: a dashboard built from a chart on persisted data"
 />
 
-The guide begins with installation and then walks through one complete 
first-run flow in the product.
+## Prerequisites
 
-## Before you start
+You need Docker on Linux, macOS or Windows. On macOS and Windows that means 
Docker Desktop, with at least 4 GB of memory assigned to it. The Compose 
installation also needs Docker Compose, which comes with Docker Desktop and 
with recent Docker Engine packages. Use a current Chrome, Firefox or Edge.
 
-The easiest way to install StreamPipes is the Docker-based installation.
+:::info Install Docker
+Go to [docs.docker.com](https://docs.docker.com/get-docker/) and follow the 
instructions for your operating system. Check the installation with `docker run 
hello-world` before you continue.
+:::
 
+## Option 1: Try it in a minute
 
-### Prerequisites
+The all-in-one image runs CouchDB, InfluxDB, NATS, the StreamPipes core, the 
IIoT extensions and the UI in one container. On first start it seeds a 
fictional company with simulated machines, so you see live data without 
connecting anything.
 
-You need:
+```bash
+docker run --rm -p 80:80 apachestreampipes/all-in-one:dev
+```
 
-- `Docker`
-- `Docker Compose`
-- a recent version of `Chrome`, `Firefox`, or `Edge`
+1. Open [http://localhost](http://localhost). The services take about a minute 
to boot. The UI shows a progress screen and moves on by itself when the core is 
ready.
+2. Sign in with `[email protected]` and the password `admin`.
+3. Explore. The demo comes with running adapters, pipelines, datasets, charts, 
dashboards and a modelled plant. A good first stop is `Dashboards`, for example 
`CNC Machining` below, then follow the links from the asset on the home page to 
the adapters and pipelines behind it.
 
-The Docker-based installation is supported on:
+<ScreenshotFigure
+src="/img/2026/all-in-one-cnc-dashboard.png"
+alt="CNC Machining dashboard of the all-in-one demo with a spindle temperature 
gauge, a parts counter, a machine state pie chart and spindle trends per 
machine"
+title="One of the demo dashboards: KPI tiles, the machine state share and 
trends per machine"
+/>
 
-- `Linux`
-- `macOS`
-- `Windows 10` and newer
+The `dev` tag follows the latest build of the development branch. From the 
next release on, `latest` and version tags such as `0.99.0` are published as 
well.
 
-:::info Install Docker
-Go to [docs.docker.com](https://docs.docker.com/installation/) and follow the 
instructions for your operating system.
+### What to look at
 
-Make sure Docker can be started as a non-root user where required and verify 
the installation with a simple test such as `docker run hello-world`.
-:::
+The demo is a water works and an automotive supplier plant. Every machine is a 
simulated adapter that alternates between normal operation and an alarm phase 
every 30 seconds, which is what the analytics pipelines react to.
 
-## Install StreamPipes
+- `Home` shows the counters, the asset table and both sites on a map (toggle 
`Map`).
+- `Dashboards` has an overview per site, detail dashboards per area, and `Shop 
Floor Display`, a dashboard in slide view for a screen on the floor.
+- `Charts` contains about 40 charts across most chart types, from KPI tiles 
and gauges to histograms and heatmaps.
+- `Pipelines` has the persist pipelines plus a few analytics pipelines: pump 
overheating detection, tool wear warnings, NOK joint detection, failed leak 
tests.
+- `Assets` holds the plant structure with sites, areas, labels and links to 
everything above.
+- `Adapters` lists the simulated machines. Open `CNC Machining Centres` to see 
a JavaScript transformation script that derives spindle power and a tool wear 
class before the events reach any pipeline.
+
+<ScreenshotFigure
+src="/img/2026/all-in-one-adapters.png"
+alt="Adapter list of the all-in-one demo with seven running simulated machines 
and their asset context"
+title="The seven simulated machines, each linked to its plant, area and labels"
+/>
+
+Everything else works like a regular installation. You can add adapters, build 
pipelines and create charts. Stop the container with `Ctrl+C`. With `--rm` the 
data is discarded; drop `--rm` to keep the container and start it again later 
with `docker start`.
+
+:::note Good to know
+Port 80 busy? Map another one with `-p 8080:80` and open 
`http://localhost:8080`. Want an empty platform without the demo? Add `-e 
SP_DEMO_SEED=false`. Want a different admin password from the start? Add `-e 
SP_INITIAL_ADMIN_PASSWORD=change-me`. All options are described in the 
[installer 
README](https://github.com/apache/streampipes/tree/dev/installer/all-in-one).
+:::
 
-Use the installation package below to start a local or test instance.
+The all-in-one image keeps its data inside the container and runs everything 
on one host. For anything you want to keep, use the Compose installation below.
 
-<DownloadSection version={'0.98.0'} 
releaseDate={'2025-12-15'}></DownloadSection>
+## Option 2: Install with Docker Compose
 
-For production-oriented setups, also review the Kubernetes-based deployment 
options that are part of the installation kit or check the 
[Deployment](06_configure-operate-deployment.md) section.
+One command creates a folder, downloads the Compose file and its environment 
file for the latest release, and starts the default setup with NATS as the 
message broker:
 
-After starting StreamPipes and opening the provided URL in your browser, 
StreamPipes performs its initial installation flow.
+```bash
+mkdir -p streampipes-0.98.0 && cd streampipes-0.98.0
+curl -fsSLO 
https://raw.githubusercontent.com/apache/streampipes/0.98.0/installer/compose/docker-compose.yml
+curl -fsSLO 
https://raw.githubusercontent.com/apache/streampipes/0.98.0/installer/compose/.env
+docker compose up -d
+```
 
-You should see the following login screen:
+Then open [http://localhost](http://localhost) and sign in with 
`[email protected]` and the password `admin`. The first start pulls 
the images and takes a few minutes; the login screen appears when the core is 
ready.
 
 <ScreenshotFigure
 src="/img/2026/login.png"
@@ -67,123 +94,69 @@ alt="Login screen"
 title="Login Screen"
 />
 
-After login, you are ready to work in the web interface.
+Before you use the instance for real, open the `.env` file and change the 
secrets and the admin credentials. The [download page](/download/) has the 
official source release and a variant of the command for the nightly build, and 
the [deployment options](06_configure-operate-deployment.md) cover Kubernetes, 
Kafka instead of NATS and extension services next to the machines.
 
-:::danger If installation components do not start
-If the installation does not complete successfully, the most common reason is 
an underpowered local environment.
-
-Check that:
-
-- Docker has enough memory assigned
-- all required containers are running
-- you restarted the stack cleanly if the first startup failed
-
-If necessary, stop the deployment, remove the containers, and start again with 
a clean state.
+:::danger If StreamPipes does not come up
+The most common reason is an underpowered Docker setup. Check that Docker has 
at least 4 GB of memory, that all containers are running (`docker compose ps`) 
and read the logs of the `backend` container (`docker compose logs backend`). 
If the first start failed halfway, stop the stack with `docker compose down`, 
remove the volumes if you do not need the data, and start again.
 :::
 
-## First steps
-
-After installation, this quick start takes you through one simple end-to-end 
workflow:
+## Build your first flow
 
-- create a sample adapter using the machine data simulator
-- persist the events so StreamPipes creates a dataset
-- create a chart from that dataset
-- add the chart to a dashboard
-
-The goal is not to explain every feature. The goal is to get one complete flow 
running so you understand how StreamPipes works as an industrial data platform.
+This part is the same for both options. You create one adapter with the 
built-in machine data simulator, persist its events into a dataset, create a 
chart on the dataset and place the chart on a dashboard. If you started the 
all-in-one image, the demo already contains adapters like this one; build your 
own anyway, it is the fastest way to understand how the parts fit together.
 
 <StepFlow
   steps={[
     {
       title: 'Connect a data source',
-      body: 'Create one adapter in Connect so StreamPipes can start receiving 
events.',
+      body: 'Create one adapter in Connect so StreamPipes starts receiving 
events.',
     },
     {
-      title: 'Create a reusable data stream',
-      body: 'Publish the source into the platform as a managed stream other 
features can use.',
+      title: 'Persist the events',
+      body: 'Enable persistence when you start the adapter, so the events 
become a dataset.',
     },
     {
-      title: 'Persist the data as a dataset',
-      body: 'Enable persistence so live events become durable operational 
data.',
+      title: 'Check the dataset',
+      body: 'Confirm that records arrive and the schema matches what you 
connected.',
     },
     {
       title: 'Create a chart',
-      body: 'Query the dataset and confirm that the data can be visualized 
correctly.',
+      body: 'Query the dataset and show it as a time series.',
     },
     {
       title: 'Place the chart on a dashboard',
-      body: 'Turn the first chart into a reusable operational view for 
monitoring.',
+      body: 'Turn the chart into a view you can open any time.',
     },
   ]}
 />
 
-If you complete these steps once, the rest of the platform becomes much easier 
to understand.
-
-
-### Step 1: Connect a first data source
+### Step 1: Connect a data source
 
-Open `Connect` and create a new adapter.
+1. Open `Connect` and click `New adapter`.
+2. Choose `Machine Data Simulator`.
+3. Pick the `Flow Rate` sensor and leave the wait time at `1000` ms, one event 
per second.
+4. Click `Next`. The preview shows live sample events. No transformation 
script is needed, so click `Next` again.
+5. In `Configure schema`, select the `timestamp` row and set its scope from 
`Measurement` to `Timestamp`.
+6. Click `Next` to open the adapter settings.
 
-For a first test, the `Machine Data Simulator` is usually the best choice 
because it lets you validate the platform flow without depending on an external 
machine or broker.
-
-<UseCaseExample title="Recommended first source">
-  Start with the Machine Data Simulator for your first adapter. It removes 
protocol and network uncertainty from the first run, so you can focus on 
learning the StreamPipes workflow itself.
+<UseCaseExample title="Why the simulator">
+  The simulator removes protocol and network questions from the first run, so 
you can learn the StreamPipes flow itself. Connecting a real machine over OPC 
UA, MQTT or a PLC protocol works the same way; see the <a 
href="/docs/use-connect/">Connect guide</a> when you get there.
 </UseCaseExample>
 
-To create the adapter:
-
-1. Open `Connect`.
-2. Click `New Adapter`.
-3. Choose `Machine Data Simulator`.
-4. Configure the `Machine Data Simulator`, e.g.,  by choosing the `Flow Rate` 
sensor and a frequency of `1000ms`.
-5. Click `Next` to see a preview of the data. We don't apply any 
transformation script for now, so it's enough to click `Next`.
-6. In the `Configure schema` section, choose the `timestamp` row and set the 
scope from `Measurement` to `Timestamp`.
-7. Click `Next` to open the adapter settings view.
-
-If your preferred adapter is not visible, first install the required extension 
in `Configuration > Extensions`.
-
+If an adapter you expect is not in the list, install the extension first under 
`Configuration > Extensions`.
 
 ### Step 2: Start the adapter and persist the events
 
-On the final adapter step, give the adapter a clear name and enable 
persistence.
-
-To do that:
-
-1. Enter a meaningful adapter name.
-2. Enable `Persist events`.
-3. Start the adapter.
+1. Give the adapter a name, for example `Flow rate test`.
+2. Enable `Persist events`. You can keep the suggested dataset name or enter 
your own.
+3. Click `Start adapter`.
 
-If your installation offers additional startup options such as asset linking 
or event-rate reduction, you can leave them at their defaults for the first run 
unless you already know you need them.
-
-#### Why persistence matters in the quick start
-
-Persistence creates a dataset from the incoming events. That dataset becomes 
the basis for charts and dashboards.
-
-Without persistence, you may still have a live stream, but you will not get 
the full chart and dashboard workflow that best demonstrates the current 
StreamPipes product model.
-
-#### What success looks like
-
-After the adapter starts successfully:
-
-- the stream is available in StreamPipes
-- events begin to flow in the live preview dialog
-
-If no data appears later in the quick start, come back to this step first and 
verify that the adapter is actually running and persistence was enabled.
+Persistence is the step that turns a live stream into data you can chart 
later. Without it you still have a stream for pipelines, but no history. Once 
the adapter runs, the live preview on its details page shows events arriving.
 
 ### Step 3: Check the dataset
 
-Next, confirm that the persisted data is available as a dataset.
-
-To do that:
-
 1. Open `Datasets`.
-2. Find the dataset created from your adapter.
-3. Check the event counters.
-4. Open the preview.
-
-You should see incoming records and a schema that matches the data you 
connected.
-
-This is the first important checkpoint in the quick start. Once data reaches a 
dataset, the rest of the workflow usually becomes straightforward.
+2. Find the dataset created by your adapter and look at its event count. It 
should grow by one per second.
+3. Open the preview to see the records and the schema.
 
 <ScreenshotFigure
 src="/img/2026/dataset-overview.png"
@@ -191,84 +164,48 @@ alt="Dataset overview with event counts, retention 
column, and export provider s
 title="Dataset Overview"
 />
 
-### Step 4: Create a chart
-
-Now create a visualization from the dataset.
+This is the checkpoint. If data reaches the dataset, the rest is 
straightforward. If the count stays at zero, go back to the adapter and check 
that it is running and that persistence was enabled.
 
-To create your first chart:
+### Step 4: Create a chart
 
-1. Open `Charts`.
-2. Create a new chart.
-3. Select the dataset from the dropdown.
-4. Keep `Raw` as a query type.
-5. In the fields selection, choose `Select all` to query all fields from the 
dataset.
-6. Use the preview to confirm the query result.
-7. Switch to the `Visualization` tab and choose `Time Series Chart` as 
visualization type.
-8. Save the chart.
+1. Open `Charts` and create a new chart.
+2. Select your dataset from the dropdown and keep `Raw` as the query type.
+3. In the field selection choose `Select all`, then check the preview.
+4. Switch to the `Visualization` tab and choose `Time Series Chart`.
+5. Save the chart.
 
 <ScreenshotFigure
 src="/img/2026/chart-timeseries.png"
 alt="Chart editor with time series visualization, toolbar, data preview, and 
visualization settings"
 />
 
+### Step 5: Place the chart on a dashboard
 
-### Step 5: Add the chart to a dashboard
-
-Dashboards in the current StreamPipes version are built from saved charts.
-
-To create a dashboard:
-
-1. Open `Dashboards`.
-2. Create a new dashboard.
-3. Open the dashboard if it does not directly open.
-4. Add the chart you saved in the previous step.
-5. Arrange the chart on the grid.
-6. Save the dashboard.
+1. Open `Dashboards` and create a new dashboard.
+2. Open it and add the chart you just saved.
+3. Arrange it on the grid and save the dashboard.
 
 <ScreenshotFigure
 src="/img/2026/dashboard-create.png"
 alt="Dashboard view"
 />
 
-At this point, you have completed a full first-use flow: from data onboarding 
to a reusable dashboard view.
-
-### Optional next step: Build a pipeline
-
-Once the quick start flow above works, the next logical step is to create a 
pipeline that transforms or enriches your live stream before persisting or 
visualizing it.
+That is the complete first flow: a source, its history, a chart and a view. 
Everything else in StreamPipes builds on these four things.
 
-Open `Pipelines` when you want to:
+### Next: a pipeline
 
-- filter noisy data
-- calculate KPIs
-- combine processing steps
-- send results to sinks
-- create curated downstream datasets
-
-For many users, pipelines make more sense after the basic 
source-to-visualization flow is already working.
+Pipelines work on the live stream before it is stored or shown: filter noise, 
calculate a KPI, detect a threshold, send a notification or write to an 
external system. Open `Pipelines`, start a new pipeline, drop your stream and a 
processor such as `Numerical Filter` on the canvas and end with a `Dataset` 
sink. The [Pipelines guide](04_use-pipelines.md) explains the editor; the 
all-in-one demo has several finished pipelines to look at.
 
 ## If something is missing
 
-If you cannot complete one of the steps, the most common reasons are:
-
-- the required adapter or sink is not installed
-- the adapter is not running
-- `Persist events` was not enabled
-- the dataset is empty, so the chart query has nothing to show
-
-Check these in order. Most first-run issues are resolved by going one step 
upstream.
+- The adapter or sink you want is not installed: add it under `Configuration > 
Extensions`.
+- The dataset is empty: the adapter is not running, or `Persist events` was 
not enabled.
+- The chart shows nothing: the dataset has no data for the selected time range 
yet, widen the range or wait a minute.
+- The UI stays on the progress screen: Docker has too little memory, or the 
core is still starting. `docker logs` shows where it is.
 
 ## Where to go next
 
-After this quick start, continue with the feature guides for the areas you 
used:
-
-- [Connect](04_use-connect.md)
-- [Datasets](04_use-datasets.md)
-- [Charts](04_use-charts.md)
-- [Dashboards](04_use-dashboards.md)
-- [Pipelines](04_use-pipelines.md)
-
-If you want a better mental model before going deeper, read the concepts pages 
next:
-
-- [Introduction](03_concepts-introduction.md)
-- [Terms](03_concepts-terms.md)
-- [Architecture](03_concepts-architecture.md)
+- The [use cases](/use-cases/) show complete scenarios such as condition 
monitoring, machine state tracking and alarm handling, with the adapters and 
processors they use.
+- The feature guides for the parts you just used: 
[Connect](04_use-connect.md), [Datasets](04_use-datasets.md), 
[Charts](04_use-charts.md), [Dashboards](04_use-dashboards.md) and 
[Pipelines](04_use-pipelines.md).
+- [Assets](04_use-assets.md) organise everything by plant, line and machine; 
the all-in-one demo is a good example of a modelled plant.
+- For the mental model behind it all, read 
[Introduction](03_concepts-introduction.md), [Terms](03_concepts-terms.md) and 
[Architecture](03_concepts-architecture.md).
diff --git a/nginx_config/default.conf b/nginx_config/default.conf
index 305bd33a2..a456c4f60 100644
--- a/nginx_config/default.conf
+++ b/nginx_config/default.conf
@@ -19,6 +19,15 @@ server {
     return 301 /docs/docs/python/latest/$2;
   }
 
+  # Folders without an index page: send visitors to the first docs page
+  # (see .htaccess for the production rules).
+  location ~ ^/docs/?$ { return 301 /docs/user-guide-introduction/; }
+  location ~ ^/docs/(0\.98\.0|0\.97\.0|0\.95\.1)/?$ { return 301 
/docs/$1/user-guide-introduction/; }
+  location ~ ^/docs/pe/?$ { return 301 /docs/configure-operate-extensions/; }
+  location ~ ^/docs/(0\.98\.0|0\.97\.0|0\.95\.1)/pe/?$ { return 301 
/docs/$1/use-install-pipeline-elements/; }
+  location ~ ^/docs/docs/?$ { return 301 /docs/docs/python/; }
+  location ~ ^/community/?$ { return 301 /community/get-involved/; }
+
   # Legacy URLs of the old website (see .htaccess for the production rules).
   location = /getinvolved.html { return 301 /community/get-involved/; }
   location = /mailinglists.html { return 301 /community/mailing-lists/; }
diff --git a/website-v2/src/components/download/DownloadSection.tsx 
b/website-v2/src/components/download/DownloadSection.tsx
index 90e0bea15..dc1c9ea5a 100644
--- a/website-v2/src/components/download/DownloadSection.tsx
+++ b/website-v2/src/components/download/DownloadSection.tsx
@@ -5,7 +5,7 @@ import styles from './download.module.css';
 
 type Props = {version: string; releaseDate: string; showMoreInfo?: boolean};
 
-/** Source release download plus the three steps to a running instance. Used 
on the download page and inside the quickstart docs. */
+/** Source release download plus the steps to a running instance. Used on the 
download page. */
 export default function DownloadSection({version, releaseDate, showMoreInfo = 
false}: Props) {
   const archive = `apache-streampipes-${version}-source-release.zip`;
   const mirror = 
`https://www.apache.org/dyn/closer.lua?action=download&filename=streampipes/${version}/${archive}`;
diff --git a/website-v2/src/components/home/Homepage.tsx 
b/website-v2/src/components/home/Homepage.tsx
index 502a1791d..61e2264ff 100644
--- a/website-v2/src/components/home/Homepage.tsx
+++ b/website-v2/src/components/home/Homepage.tsx
@@ -96,7 +96,7 @@ const modules = [
   {label: 'Pipelines', src: '/img/home/pipeline-editor-example.webp', alt: 
'Visual pipeline editor routing machine data to trend detection, a Teams 
notification and storage', caption: 'Pipelines: filter, detect and route live 
data in the visual editor.', to: docs('use-pipelines')},
   {label: 'Datasets', src: '/img/home/dataset-overview.webp', alt: 'Dataset 
workspace with stored events, retention and export providers', caption: 
'Datasets: stored history with retention rules, export and permissions.', to: 
docs('use-datasets')},
   {label: 'Charts', src: '/img/home/chart-timeseries.webp', alt: 'Chart editor 
with a time-series visualization', caption: 'Charts: query a dataset and pick 
the right visualization.', to: docs('use-charts')},
-  {label: 'Dashboards', src: '/img/home/dashboard-create.webp', alt: 
'Dashboard with a gauge, a flow-rate chart and a machine status indicator', 
caption: 'Dashboards: saved charts combined into one view for the team.', to: 
docs('use-dashboards')},
+  {label: 'Dashboards', src: '/img/home/dashboard-water-storage.webp', alt: 
'Dashboard with the latest tank level, a status lamp, level and pressure trends 
and an event table', caption: 'Dashboards: saved charts combined into one view 
for the team.', to: docs('use-dashboards')},
   {label: 'Assets', src: '/img/home/home-map.webp', alt: 'StreamPipes home 
screen with assets shown on a map', caption: 'Assets: plants, lines and 
machines on a map, with their linked data.', to: docs('use-assets')},
 ];
 
diff --git a/website-v2/static/img/2026/all-in-one-adapters.png 
b/website-v2/static/img/2026/all-in-one-adapters.png
new file mode 100644
index 000000000..d18177506
Binary files /dev/null and b/website-v2/static/img/2026/all-in-one-adapters.png 
differ
diff --git a/website-v2/static/img/2026/all-in-one-cnc-dashboard.png 
b/website-v2/static/img/2026/all-in-one-cnc-dashboard.png
new file mode 100644
index 000000000..b1269691e
Binary files /dev/null and 
b/website-v2/static/img/2026/all-in-one-cnc-dashboard.png differ
diff --git a/website-v2/static/img/2026/all-in-one-dashboard.png 
b/website-v2/static/img/2026/all-in-one-dashboard.png
new file mode 100644
index 000000000..035ab1e1e
Binary files /dev/null and 
b/website-v2/static/img/2026/all-in-one-dashboard.png differ
diff --git a/website-v2/static/img/home/dashboard-water-storage.webp 
b/website-v2/static/img/home/dashboard-water-storage.webp
new file mode 100644
index 000000000..bc113d3cf
Binary files /dev/null and 
b/website-v2/static/img/home/dashboard-water-storage.webp differ

Reply via email to