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).

@@ -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: