Stack Overview
This repository defines a local multi-service stack with Docker Compose. The main orchestration file is docker-compose.yaml, and runtime variable values are provided by the root env file.
Because the environment file is named env instead of .env, start the stack with an explicit env-file argument:
Docker
docker compose --env-file env up -d
Podman
podman compose --env-file env up -d
Software Components
| Service/Component Name |
Generic Description |
Documentation Link |
| Zookeeper |
A centralized service for maintaining cluster state, providing distributed synchronization, and providing a coordinator for other distributed applications. |
Apache ZooKeeper Documentation |
| Kafka |
An event streaming platform used to build real-time data pipelines, streaming applications, and data warehouses. |
Apache Kafka Documentation |
| Flink |
A scalable, fault-tolerant stream processing engine that can be used for real-time data processing and analytics. |
Apache Flink Documentation |
| PostgreSQL |
A powerful, open-source relational database system that supports a wide range of data types and complex queries. |
PostgreSQL Documentation |
| InfluxDB |
A time-series database designed for monitoring, analytics, and visualization of metric data. |
InfluxDB Documentation |
| MinIO |
An open-source object storage server that provides high availability, durability, and performance for storing and accessing data in the cloud. |
MinIO Documentation |
Containers
| Container |
Software component |
Description |
zookeeper |
Apache ZooKeeper |
To be used by Kafka cluster. |
kafka |
Apache Kafka |
Event streaming |
flink-jobmanager |
Apache Flink |
Control plane by accepting jobs, coordinating execution, scheduling tasks, tracking checkpoints, and exposing the Flink web UI on port 8081. |
flink-taskmanager |
Apache Flink |
Worker plane by executing the job subtasks assigned by the JobManager and providing the configured task slots used to run parallel work. |
postgres |
PostgreSQL |
Relational database |
influxdb |
InfluxDB 3 Core |
Time-series database |
influxdb-ui |
InfluxDB 3 UI |
Browser-based UI for InfluxDB 3. |
minio |
MinIO AIStor |
S3-compatible object storage |
Environment File
The root env file supplies values used by Compose variable substitution.
PostgreSQL variables
| Variable |
Default value |
Used by |
Description |
POSTGRES_PASSWORD |
S3cret |
postgres |
Database superuser password passed to the Postgres image. |
POSTGRES_USER |
bt_user |
postgres |
Initial database user created by the Postgres image. |
POSTGRES_DB |
bt_db |
postgres |
Initial database name created at first startup. |
Object storage variables
| Variable |
Default value |
Used by |
Description |
MINIO_USER |
minio |
minio |
Root username mapped to MINIO_ROOT_USER. |
MINIO_PASSWORD |
pass4minio |
minio |
Root password mapped to MINIO_ROOT_PASSWORD. |
MINIO_LICENSE |
./minio.license |
minio |
Full path for the Aistore license file. |
Exposed ports summary
| Service |
Host port(s) |
zookeeper |
2181 |
kafka |
9093 |
flink-jobmanager |
8081 |
postgres |
5432 |
influxdb |
8181 |
influxdb-ui |
8888 |
minio |
9000 (api endpoint), 9001 (web interace) |
For config steps after initial bootstrap see CONFIG.md