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

piotr pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iggy-website.git


The following commit(s) were added to refs/heads/main by this push:
     new 3d40fe69 Update docs
3d40fe69 is described below

commit 3d40fe6922c181ac452014c299ac287c8f1ba6e6
Author: spetz <[email protected]>
AuthorDate: Sun Nov 16 08:31:41 2025 +0100

    Update docs
---
 docs/connectors/introduction.md | 14 ++++++-------
 docs/connectors/runtime.md      | 31 ++++++++++++++++++++---------
 docs/connectors/sink.md         | 44 +++++++++++++++++++++++++++++++----------
 docs/connectors/source.md       | 44 +++++++++++++++++++++++++++++++----------
 docs/introduction/about.md      | 27 +++++++++++++++++++++----
 docs/server/configuration.md    |  7 +++++++
 docs/server/docker.md           | 18 +++++++++++++++--
 docs/web_ui/start.md            | 25 +++++++++++++++--------
 8 files changed, 160 insertions(+), 50 deletions(-)

diff --git a/docs/connectors/introduction.md b/docs/connectors/introduction.md
index 3f819c38..4d89307c 100644
--- a/docs/connectors/introduction.md
+++ b/docs/connectors/introduction.md
@@ -24,11 +24,11 @@ The [docker 
image](https://hub.docker.com/r/apache/iggy-connect) is available, a
 
 ## Quick Start
 
-1. Build the project in release mode, and make sure that the plugins specified 
in `core/connectors/config.toml` under `path` are available. You can use either 
of `toml`, `json` or `yaml` formats for the configuration file.
+1. Build the project in release mode (or debug, and update the connectors 
paths in the config accordingly), and make sure that the plugins specified in 
`core/connectors/runtime/example_config/connectors/` directory under `path` are 
available. The configuration must be provided in `toml` format.
 
 2. Run `docker compose up -d` from `/examples/rust/src/sink-data-producer` 
which will start the Quickwit server to be used by an example sink connector. 
At this point, you can access the Quickwit UI at 
[http://localhost:7280](http://localhost:7280) - check this dashboard again 
later on, after the `events` index will be created.
 
-3. Set environment variable 
`IGGY_CONNECTORS_CONFIG_PATH=core/connectors/runtime/config` (adjust the path 
as needed) pointing to the runtime configuration file.
+3. Set environment variable 
`IGGY_CONNECTORS_CONFIG_PATH=core/connectors/runtime/example_config/config.toml`
 (adjust the path as needed) pointing to the runtime configuration file.
 
 4. Start the Iggy server and invoke the following commands via Iggy CLI to 
create the example streams and topics used by the sample connectors.
 
@@ -45,13 +45,13 @@ The [docker 
image](https://hub.docker.com/r/apache/iggy-connect) is available, a
 
 ## Runtime
 
-All the connectors are implemented as Rust libraries and can be used as a part 
of the connector runtime. The runtime is responsible for managing the lifecycle 
of the connectors and providing the necessary infrastructure for the connectors 
to run. For more information, please refer to the **[runtime 
documentation](/docs/connectors/runtime)**.
+All the connectors are implemented as Rust libraries and can be used as a part 
of the connector runtime. The runtime is responsible for managing the lifecycle 
of the connectors and providing the necessary infrastructure for the connectors 
to run. For more information, please refer to the **[runtime 
documentation](https://github.com/apache/iggy/tree/master/core/connectors/runtime)**.
 
 ## Sink
 
 Sinks are responsible for consuming the messages from the configured stream(s) 
and topic(s) and sending them further to the specified destination. For 
example, the Quickwit sink connector is responsible for sending the messages to 
the Quickwit indexer.
 
-Please refer to the **[Sink documentation](/docs/connectors/sink)** for the 
details about the configuration and the sample implementation.
+Please refer to the **[Sink 
documentation](https://github.com/apache/iggy/tree/master/core/connectors/sinks)**
 for the details about the configuration and the sample implementation.
 
 When implementing `Sink`, make sure to use the `sink_connector!` macro to 
expose the FFI interface and allow the connector runtime to register the sink 
with the runtime.
 Each sink should have its own, custom configuration, which is passed along 
with the unique plugin ID via expected `new()` method.
@@ -60,14 +60,14 @@ Each sink should have its own, custom configuration, which 
is passed along with
 
 Sources are responsible for producing the messages to the configured stream(s) 
and topic(s). For example, the Test source connector will generate the random 
messages that will be then sent to the configured stream and topic.
 
-Please refer to the **[Source documentation](/docs/connectors/source)** for 
the details about the configuration and the sample implementation.
+Please refer to the **[Source 
documentation](https://github.com/apache/iggy/tree/master/core/connectors/sources)**
 for the details about the configuration and the sample implementation.
 
 ## Building the connectors
 
-New connector can be built simply by implementing either `Sink` or `Source` 
trait. Please check the **[sink](/docs/connectors/sink)** or 
**[source](/docs/connectors/source)** documentation, as well as the existing 
examples under `/sinks` and `/sources` directories.
+New connector can be built simply by implementing either `Sink` or `Source` 
trait. Please check the 
**[sink](https://github.com/apache/iggy/tree/master/core/connectors/sinks)** or 
**[source](https://github.com/apache/iggy/tree/master/core/connectors/sources)**
 documentation, as well as the existing examples under `/sinks` and `/sources` 
directories.
 
 ## Transformations
 
 Field transformations (depending on the supported payload formats) can be 
applied to the messages either before they are sent to the specified topic 
(e.g. when produced by the source connectors), or before consumed by the sink 
connectors. To add the new transformation, simply implement the `Transform` 
trait and extend the existing `load` function. Each transform may have its own, 
custom configuration.
 
-To find out more about the transforms, stream decoders or encoders, please 
refer to the **[SDK documentation](/docs/connectors/sdk)**.
+To find out more about the transforms, stream decoders or encoders, please 
refer to the **[SDK 
documentation](https://github.com/apache/iggy/tree/master/core/connectors/sdk)**.
diff --git a/docs/connectors/runtime.md b/docs/connectors/runtime.md
index b1cab28c..6bce1a5a 100644
--- a/docs/connectors/runtime.md
+++ b/docs/connectors/runtime.md
@@ -15,34 +15,47 @@ Internally, 
[dlopen2](https://github.com/OpenByteDev/dlopen2) provides a safe an
 
 By default, runtime will look for the configuration file, to decide which 
connectors to load and how to configure them.
 
-The minimal viable configuration requires at least the Iggy credentials, to 
create 2 separate instances of producer & consumer connections and the state 
directory path where source connectors can store their optional state.
+To start the connector runtime, simply run `cargo run --bin iggy-connectors`.
+
+The [docker image](https://hub.docker.com/r/apache/iggy-connect) is available, 
and can be fetched via `docker pull apache/iggy-connect`.
+
+The minimal viable configuration requires at least the Iggy credentials to 
create 2 separate instances of producer & consumer connections, the state 
directory path where source connectors can store their optional state, and the 
`connectors.config_dir` setting that specifies the directory containing 
individual connector configuration files.
 
 ```toml
 [iggy]
 address = "localhost:8090"
 username = "iggy"
 password = "iggy"
-# token = "secret" # Personal Access Token (PAT) can be used instead of 
username and password
+token = "" # Personal Access Token (PAT) can be used instead of username and 
password
+
+[iggy.tls] # Optional TLS configuration for Iggy TCP connection
+enabled = false
+ca_file = "core/certs/iggy_cert.pem"
+domain = "" # Optional domain for TLS connection
 
 [state]
 path = "local_state"
+
+[connectors]
+config_type = "local"
+config_dir = "path/to/connectors"
 ```
 
-All the other config sections start either with `sources` or `sinks` depending 
on the connector type.
+Each connector (source or sink) is configured in its own separate file within 
the directory specified by `connectors.config_dir`. If `config_dir` is empty or 
the directory doesn't exist, no connectors will be loaded.
 
-Keep in mind that either of `toml`, `yaml`, or `json` formats are supported 
for the configuration file. The path to the configuration can be overriden by 
`IGGY_CONNECTORS_CONFIG_PATH` environment variable. Each configuration section 
can be also additionally updated by using the following convention 
`IGGY_CONNECTORS_SECTION_NAME.KEY_NAME` e.g. `IGGY_CONNECTORS_IGGY_USERNAME` 
and so on.
+The path to the configuration can be overridden by 
`IGGY_CONNECTORS_CONFIG_PATH` environment variable. Each configuration section 
can be also additionally updated by using the following convention 
`IGGY_CONNECTORS_SECTION_NAME.KEY_NAME` e.g. `IGGY_CONNECTORS_IGGY_USERNAME` 
and so on.
 
 ## HTTP API
 
-Connector runtime has an optional HTTP API that can be enabled by setting the 
`enabled` flag to `true` in the `[http_api]` section.
+Connector runtime has an optional HTTP API that can be enabled by setting the 
`enabled` flag to `true` in the `[http]` section.
 
 ```toml
-[http_api] # Optional HTTP API configuration
+[http] # Optional HTTP API configuration
 enabled = true
 address = "127.0.0.1:8081"
-# api_key = "secret" # Optional API key for authentication to be passed as 
`api-key` header
+api_key = "" # Optional API key for authentication to be passed as `api-key` 
header
 
-[http_api.cors] # Optional CORS configuration for HTTP API
+[http.cors] # Optional CORS configuration for HTTP API
 enabled = false
 allowed_methods = ["GET", "POST", "PUT", "DELETE"]
 allowed_origins = ["*"]
@@ -51,7 +64,7 @@ exposed_headers = [""]
 allow_credentials = false
 allow_private_network = false
 
-[http_api.tls] # Optional TLS configuration for HTTP API
+[http.tls] # Optional TLS configuration for HTTP API
 enabled = false
 cert_file = "core/certs/iggy_cert.pem"
 key_file = "core/certs/iggy_key.pem"
diff --git a/docs/connectors/sink.md b/docs/connectors/sink.md
index 4615e6be..39efddd1 100644
--- a/docs/connectors/sink.md
+++ b/docs/connectors/sink.md
@@ -32,32 +32,46 @@ pub trait Sink: Send + Sync {
 
 ## Configuration
 
-Sink is configured in the default `config` file used by runtime. Each sink 
configuration, is part of the map of `<String, SinkConfig>`, which can be 
represented using toml, json, or yaml.
+Each sink connector is configured in its own separate configuration file 
within the connectors directory specified in the main runtime config.
 
 ```rust
 pub struct SinkConfig {
+    pub id: String,
     pub enabled: bool,
+    pub version: u64,
     pub name: String,
     pub path: String,
     pub transforms: Option<TransformsConfig>,
     pub streams: Vec<StreamConsumerConfig>,
-    pub config_format: ConfigFormat,
+    pub config_format: Option<ConfigFormat>,
     pub config: Option<serde_json::Value>,
 }
 ```
 
-Below is the example configuration for a sink connector, using `stdout` as 
it's unique identifier:
+**Main runtime config (config.toml):**
 
 ```toml
+[connectors]
+config_type = "local"
+config_dir = "path/to/connectors"
+```
+
+**Sink connector config (connectors/stdout.toml):**
+
+```toml
+# Type of connector (sink or source)
+type = "sink"
+id = "stdout" # Unique sink ID
+
 # Required configuration for a sink connector
-[sinks.stdout]
 enabled = true
+version = 0
 name = "Stdout sink"
 path = "target/release/libiggy_connector_stdout_sink"
 config_format = "toml"
 
 # Collection of the streams from which messages are consumed
-[[sinks.stdout.streams]]
+[[streams]]
 stream = "example_stream"
 topics = ["example_topic"]
 schema = "json"
@@ -66,19 +80,29 @@ poll_interval = "5ms"
 consumer_group = "stdout_sink_connector"
 
 # Custom configuration for the sink connector, deserialized to type T from 
`config` field
-[sinks.stdout.config]
+[config]
 print_payload = true
 
 # Optional data transformation(s) to be applied after consuming messages from 
the stream
-[sinks.stdout.transforms.add_fields]
+[transforms.add_fields]
 enabled = true
 
 # Collection of the fields transforms to be applied after consuming messages 
from the stream
-[[sinks.stdout.transforms.add_fields.fields]]
+[[transforms.add_fields.fields]]
 key = "message"
 value.static = "hello"
 ```
 
+### Environment Variable Overrides
+
+Configuration properties can be overridden using environment variables. The 
pattern follows: `IGGY_CONNECTORS_SINK_[ID]_[PROPERTY]`
+
+For example, to override the `enabled` property for a sink with ID `stdout`:
+
+```bash
+IGGY_CONNECTORS_SINK_STDOUT_ENABLED=false
+```
+
 ## Sample implementation
 
 Let's implement the example sink connector, which will simply print the 
messages to the standard output.
@@ -212,8 +236,8 @@ While the schema of messages (that will be consumed from 
the Iggy stream), canno
 
 Keep in mind, that it might be sometimes difficult/impossible e.g. to 
transform one format to another e.g. JSON to SBE or so, and in such a case, the 
consumed messages will be ignored.
 
-Eventually, compile the source code and update the runtime configuration file 
using the example config above (`config.toml` file by default, unless you 
prefer `yaml` or `json` format instead - just make sure that `path` points to 
the existing plugin).
+Eventually, compile the source code and create a separate connector 
configuration file in the connectors directory (as specified in the main 
runtime `config.toml`).  Make sure that `path` points to the existing plugin.
 
 And that's all, enjoy using the sink connector!
 
-On a side note, if you'd like to produce the messages to the Iggy stream 
instead, you can implement your own **[Source 
connector](/docs/connectors/source)** too :)
+On a side note, if you'd like to produce the messages to the Iggy stream 
instead, you can implement your own **[Source 
connector](https://github.com/apache/iggy/tree/master/core/connectors/sources)**
 too :)
diff --git a/docs/connectors/source.md b/docs/connectors/source.md
index 67bf0fb7..a259cb6b 100644
--- a/docs/connectors/source.md
+++ b/docs/connectors/source.md
@@ -27,32 +27,46 @@ pub trait Source: Send + Sync {
 
 ## Configuration
 
-Source is configured in the default `config` file used by runtime. Each source 
configuration, is part of the map of `<String, SourceConfig>`, which can be 
represented using toml, json, or yaml.
+Each source connector is configured in its own separate configuration file 
within the connectors directory specified in the main runtime config.
 
 ```rust
 pub struct SourceConfig {
+    pub id: String,
     pub enabled: bool,
+    pub version: u64,
     pub name: String,
     pub path: String,
     pub transforms: Option<TransformsConfig>,
     pub streams: Vec<StreamProducerConfig>,
-    pub config_format: ConfigFormat,
+    pub config_format: Option<ConfigFormat>,
     pub config: Option<serde_json::Value>,
 }
 ```
 
-Below is the example configuration for a source connector, using `random` as 
it's unique identifier:
+**Main runtime config (config.toml):**
 
 ```toml
+[connectors]
+config_type = "local"
+config_dir = "path/to/connectors"
+```
+
+**Source connector config (connectors/random.toml):**
+
+```toml
+# Type of connector (sink or source)
+type = "source"
+id = "random" # Unique source ID
+
 # Required configuration for a source connector
-[sources.random]
 enabled = true # Toggle source on/off
+version = 0
 name = "Random source" # Name of the source
 path = "libiggy_connector_random_source" # Path to the source connector
 config_format = "toml"
 
 # Collection of the streams to which the produced messages are sent
-[[sources.random.streams]]
+[[streams]]
 stream = "example_stream"
 topic = "example_topic"
 schema = "json"
@@ -60,19 +74,29 @@ batch_length = 100
 linger_time = "5ms"
 
 # Custom configuration for the source connector, deserialized to type T from 
`config` field
-[sources.random.config]
+[config]
 messages_count = 10
 
 # Optional data transformation(s) to be applied before sending messages to the 
stream
-[sources.random.transforms.add_fields]
+[transforms.add_fields]
 enabled = true
 
 # Collection of the fields transforms to be applied before sending messages to 
the stream
-[[sources.random.transforms.add_fields.fields]]
+[[transforms.add_fields.fields]]
 key = "message"
 value.static = "hello"
 ```
 
+### Environment Variable Overrides
+
+Configuration properties can be overridden using environment variables. The 
pattern follows: `IGGY_CONNECTORS_SOURCE_[ID]_[PROPERTY]`
+
+For example, to override the `enabled` property for a source with ID `random`:
+
+```bash
+IGGY_CONNECTORS_SOURCE_RANDOM_ENABLED=false
+```
+
 ## Sample implementation
 
 Let's implement the example source connector, which will simply generate the N 
random messages depending on the count specified in the configuration.
@@ -229,7 +253,7 @@ It's also important to note, that the supported format(s) 
might vary depending o
 
 While the final schema of messages (that will be appended to the Iggy stream), 
can be controlled with the built-in configuration (the particular 
`StreamEncoder` will be used), keep in mind, that it might be sometimes 
difficult/impossible e.g. to transform one format to another e.g. JSON to SBE 
or so, and in such a case, the produced messages will be ignored.
 
-Eventually, compile the source code and update the runtime configuration file 
using the example config above (`config.toml` file by default, unless you 
prefer `yaml` or `json` format instead - just make sure that `path` points to 
the existing plugin).
+Eventually, compile the source code and create a separate connector 
configuration file in the connectors directory (as specified in the main 
runtime `config.toml`). Make sure that `path` points to the existing plugin.
 
 And before starting the runtime, do not forget to create the specified stream 
and topic e.g. via Iggy CLI.
 
@@ -241,4 +265,4 @@ iggy --username iggy --password iggy topic create 
example_stream example_topic 1
 
 And that's all, enjoy using the source connector!
 
-On a side note, if you'd like to process the messages consumed from the Iggy 
stream instead, you can implement your own **[Sink 
connector](/docs/connectors/sink)** too :)
+On a side note, if you'd like to process the messages consumed from the Iggy 
stream instead, you can implement your own **[Sink 
connector](https://github.com/apache/iggy/tree/master/core/connectors/sinks)** 
too :)
diff --git a/docs/introduction/about.md b/docs/introduction/about.md
index 92951cea..e5249f40 100644
--- a/docs/introduction/about.md
+++ b/docs/introduction/about.md
@@ -5,7 +5,7 @@ title: About
 sidebar_position: 1
 ---
 
-**Iggy** is a persistent message streaming platform written in Rust, 
supporting QUIC, TCP (custom binary specification) and HTTP (regular REST API) 
transport protocols, **capable of processing millions of messages per second at 
ultra-low latency**.
+**Iggy** is a persistent message streaming platform written in Rust, 
supporting QUIC, TCP, WebSocket (custom binary specification) and HTTP (regular 
REST API) transport protocols, **capable of processing millions of messages per 
second at ultra-low latency**.
 
 Iggy provides **exceptionally high throughput and performance** while 
utilizing minimal computing resources.
 
@@ -26,7 +26,7 @@ The name is an abbreviation for the Italian Greyhound - small 
yet extremely fast
 - **Low latency and predictable resource usage** thanks to the Rust compiled 
language (no GC) and `io_uring`.
 - **User authentication and authorization** with granular permissions and 
Personal Access Tokens (PAT)
 - Support for multiple streams, topics and partitions
-- Support for **multiple transport protocols** (QUIC, TCP, HTTP)
+- Support for **multiple transport protocols** (QUIC, TCP, WebSocket, HTTP)
 - Fully operational RESTful API which can be optionally enabled
 - Available client SDK in multiple languages
 - **Thread per core shared nothing design** together with `io_uring` guarantee 
the best possible performance on modern `Linux` systems.
@@ -44,7 +44,7 @@ The name is an abbreviation for the Italian Greyhound - small 
yet extremely fast
 - **Message expiry** with auto deletion based on the configurable **retention 
policy**
 - Additional features such as **server side message deduplication**
 - **Multi-tenant** support via abstraction of **streams** which group 
**topics**
-- **TLS** support for all transport protocols (TCP, QUIC, HTTPS)
+- **TLS** support for all transport protocols (TCP, QUIC, WebSocket, HTTPS)
 - **[Connectors](https://github.com/apache/iggy/tree/master/core/connectors)** 
- sinks, sources and data transformations based on the **custom Rust plugins**
 - **[Model Context 
Protocol](https://github.com/apache/iggy/tree/master/core/ai/mcp)** - provide 
context to LLM with **MCP server**
 - Optional server-side as well as client-side **data encryption** using 
AES-256-GCM
@@ -102,8 +102,27 @@ Additionally, you can run the `CLI` which is available in 
the running container,
 
 Keep in mind that running the container on operating systems other than Linux, 
where the Docker is running in the VM, might result in the performance 
degradation.
 
+Also, when running the container, **make sure to include the additional 
capabilities**, as you can find in 
[docker-compose](https://github.com/apache/iggy/blob/master/docker-compose.yml) 
file:
+
+```yml
+cap_add:
+  - SYS_NICE
+security_opt:
+  - seccomp:unconfined
+ulimits:
+  memlock:
+    soft: -1
+    hard: -1
+```
+
+Or when running with `docker run`:
+
+```
+docker run --cap-add=SYS_NICE --security-opt seccomp=unconfined --ulimit 
memlock=-1:-1 apache/iggy:edge
+```
+
 ### Versioning
 
 The official releases follow the regular semver (`0.5.0`) or have a `latest` 
tag applied (`apache/iggy:latest`).
 
-We also publish edge/dev/nightly releases (e.g. `0.5.0-edge.1` or 
`apache/iggy:edge`), for both SDKs and the Docker images. These are typically 
compatible with the latest changes but are not guaranteed to be stable and, as 
the name suggests, are not recommended for production use.
+We also publish edge/dev/nightly releases (e.g. `0.6.0-edge.1` or 
`apache/iggy:edge`), for both SDKs and the Docker images. These are typically 
compatible with the latest changes but are not guaranteed to be stable and, as 
the name suggests, are not recommended for production use.
diff --git a/docs/server/configuration.md b/docs/server/configuration.md
index 458a0e6f..e3d5bcab 100644
--- a/docs/server/configuration.md
+++ b/docs/server/configuration.md
@@ -516,3 +516,10 @@ An optional transport layer, which can be used to connect 
to the server with any
 Similar to TCP it's a stateful protocol, however, it's not as performant as 
TCP. QUIC support is built on top of [Quinn](https://github.com/quinn-rs/quinn) 
library, and all the remaining options are essentially the direct mapping of 
the options available in Quinn. QUIC and TCP use the same custom binary 
protocol specification.
 
 To consume the QUIC API from Iggy SDK, you need to make use of the available 
`QuicClient` component.
+
+
+### WebSocket
+
+An optional transport layer, which can be used to connect to the server with 
any tool or application that supports WebSocket. It is enabled by default, but 
you can disable it by setting `enabled` to `false`. The `address` option 
specifies the address and port to listen on.
+
+To consume the WebSocket API from Iggy SDK, you need to make use of the 
available `WebSocketClient` component.
diff --git a/docs/server/docker.md b/docs/server/docker.md
index 1c445c5b..84e20fc3 100644
--- a/docs/server/docker.md
+++ b/docs/server/docker.md
@@ -9,23 +9,31 @@ You can easily run the Iggy server with Docker - the official 
images can be foun
 
 Below is an example of the `docker-compose.yml` file which additionally 
overrides the default configuration (described in the section below) with the 
environment variables. If you prefer using the configuration file, you can 
mount it as a volume and provide the path to it with the `IGGY_CONFIG_PATH` 
environment variable.
 
+When running the container, **make sure to include the additional 
capabilities**, as you can find in 
[docker-compose](https://github.com/apache/iggy/blob/master/docker-compose.yml) 
file:
+
+
 ```yaml
 iggy:
-  image: iggyrs/iggy:latest
+  image: apache/iggy:latest
   container_name: iggy
   restart: unless-stopped
   cap_add:
     - SYS_NICE
   security_opt:
     - seccomp:unconfined
+  ulimits:
+    memlock:
+      soft: -1
+      hard: -1
   environment:
     - IGGY_ROOT_USERNAME=iggy
-    - IGGY_ROOT_PASSWORD=Secret123!
+    - IGGY_ROOT_PASSWORD=Secret123
     - IGGY_HTTP_ENABLED=true
     - IGGY_HTTP_ADDRESS=0.0.0.0:80
     - IGGY_TCP_ENABLED=true
     - IGGY_TCP_ADDRESS=0.0.0.0:3000
     - IGGY_QUIC_ENABLED=false
+    - IGGY_WEBSOCKET_ENABLED=false
     - IGGY_HEARTBEAT_ENABLED=true
     - IGGY_HEARTBEAT_INTERVAL=5s
   ports:
@@ -42,3 +50,9 @@ networks:
 volumes:
   iggy:
 ```
+
+Or when running with `docker run`:
+
+```
+docker run --cap-add=SYS_NICE --security-opt seccomp=unconfined --ulimit 
memlock=-1:-1 apache/iggy:edge
+```
diff --git a/docs/web_ui/start.md b/docs/web_ui/start.md
index 45387b23..a79a8535 100644
--- a/docs/web_ui/start.md
+++ b/docs/web_ui/start.md
@@ -5,7 +5,7 @@ title: Iggy Web UI
 sidebar_position: 1
 ---
 
-Iggy Web UI provides a comprehensive dashboard for Iggy server. It allows you 
to monitor the server's health, streams, topics, browse the messages, users and 
more. The dashboard is built with Svelte and is available as [open-source 
repository](https://github.com/iggy-rs/iggy-web-ui/) as well as the Docker 
image on [Docker Hub](https://hub.docker.com/r/iggyrs/iggy-web-ui).
+Iggy Web UI provides a comprehensive dashboard for Iggy server. It allows you 
to monitor the server's health, streams, topics, browse the messages, users and 
more. The dashboard is built with Svelte and is available as [open-source 
repository](https://github.com/apache/iggy-web-ui/) as well as the Docker image 
on [Docker Hub](https://hub.docker.com/r/apache/iggy-web-ui).
 
 ![Web UI](/img/iggy_web_ui.png)
 
@@ -13,17 +13,26 @@ Here's the full example of the `docker-compose.yml` file 
that starts the Iggy se
 
 ```yaml
 iggy:
-  image: iggyrs/iggy:latest
+  image: apache/iggy:latest
   container_name: iggy
   restart: unless-stopped
+  cap_add:
+    - SYS_NICE
+  security_opt:
+    - seccomp:unconfined
+  ulimits:
+    memlock:
+      soft: -1
+      hard: -1
   environment:
     - IGGY_ROOT_USERNAME=iggy
-    - IGGY_ROOT_PASSWORD=Secret123!
+    - IGGY_ROOT_PASSWORD=Secret123
     - IGGY_HTTP_ENABLED=true
     - IGGY_HTTP_ADDRESS=0.0.0.0:80
     - IGGY_TCP_ENABLED=true
     - IGGY_TCP_ADDRESS=0.0.0.0:3000
     - IGGY_QUIC_ENABLED=false
+    - IGGY_WEBSOCKET_ENABLED=false
     - IGGY_HEARTBEAT_ENABLED=true
     - IGGY_HEARTBEAT_INTERVAL=5s
   ports:
@@ -35,7 +44,7 @@ iggy:
     - iggy:/iggy/local_data
 
 init-iggy:
-  image: iggyrs/iggy:latest
+  image: apache/iggy:latest
   container_name: init-iggy
   networks:
     - iggy
@@ -45,19 +54,19 @@ init-iggy:
   command: |
     "
     echo 'Logging in to Iggy'
-    iggy --tcp-server-address iggy:3000 --username iggy --password Secret123! 
login 1m
+    iggy --tcp-server-address iggy:3000 --username iggy --password Secret123 
login 1m
 
     echo 'Creating my-stream...'
-    iggy --transport tcp --tcp-server-address iggy:3000 --username iggy 
--password Secret123! stream create my-stream
+    iggy --transport tcp --tcp-server-address iggy:3000 --username iggy 
--password Secret123 stream create my-stream
     echo 'Created my-stream'
 
     echo 'Creating my-stream topics...'
-    iggy --tcp-server-address iggy:3000 --username iggy --password Secret123! 
topic create my-stream my-topic 1 none 7d
+    iggy --tcp-server-address iggy:3000 --username iggy --password Secret123 
topic create my-stream my-topic 1 none 7d
     echo 'Created my-stream topics`
     "
 
 iggy-web-ui:
-  image: iggyrs/iggy-web-ui:latest
+  image: apache/iggy-web-ui:latest
   container_name: iggy-web-ui
   restart: unless-stopped
   environment:

Reply via email to