From oh-my-study-with-me
Sets up Docker Compose-based lab environments for Kafka, Elasticsearch, MySQL, and Redis with monitoring and load testing. Useful for hands-on practice when users request lab or environment setup.
npx claudepluginhub lsh1215/oh-my-study-with-me --plugin oh-my-study-with-meThis skill uses the workspace's default tool permissions.
Arguments: $ARGUMENTS
Guides developers through setting up dev environments: identifies tools like Node.js/Python/Docker, provides platform-specific installs (Homebrew/apt/Chocolatey), configs env vars, verifies setups. For new projects, onboarding, machine switches.
Generates runtime-automation playbooks (solve/validation/setup.yml) for existing RHDP labs. Adds Zero Touch Solve/Validate buttons to showroom without altering setup. Supports OCP tenant/dedicated, RHEL VM+bastion, AAP.
Generates Red Hat Showroom workshop modules in AsciiDoc from reference materials like URLs, files, or docs, with business storytelling and hands-on exercises.
Share bugs, ideas, or general feedback.
Arguments: $ARGUMENTS
labs/
├── kafka/
│ ├── docker-compose.yml
│ ├── docker-compose.monitoring.yml (optional)
│ ├── docker-compose.loadtest.yml (optional)
│ └── apps/
│
├── elasticsearch/
│ ├── docker-compose.yml
│ ├── docker-compose.apm.yml (optional)
│ └── apps/
│
├── database/
│ ├── docker-compose.yml
│ ├── docker-compose.monitoring.yml (optional)
│ ├── data/
│ └── queries/
│
├── redis/
│ ├── docker-compose.yml
│ ├── docker-compose.monitoring.yml (optional)
│ └── apps/
│
└── shared/
├── grafana/
│ └── provisioning/
├── prometheus/
│ └── prometheus.yml
└── loadtest/
└── k6/
# Components:
# - Zookeeper (1 node) or KRaft mode (without Zookeeper)
# - Kafka Broker x3 (cluster)
# - Kafka UI (for viewing topics/messages/consumer groups)
#
# Ports:
# - 9092, 9093, 9094: Kafka brokers
# - 8080: Kafka UI
#
# Network: kafka-net (bridge)
Things to verify when generating:
# Additional components:
# - JMX Exporter (attached as agent to each broker)
# - Prometheus (metrics collection)
# - Grafana (dashboards)
# - Preset dashboards: Kafka Broker Metrics, Consumer Lag
#
# Start: docker compose -f docker-compose.yml -f docker-compose.monitoring.yml up -d
# Additional components:
# - k6 (load generator)
#
# Example scenarios:
# - Producer throughput measurement: send N messages/sec, compare acks=0/1/all
# - Consumer lag simulation: producer speed > consumer speed
# Components:
# - Elasticsearch 3-node cluster (or single node for simple practice)
# - Kibana
#
# Ports:
# - 9200: Elasticsearch
# - 5601: Kibana
#
# Notes:
# - vm.max_map_count=262144 (requires host configuration)
# - ES_JAVA_OPTS: -Xms512m -Xmx512m (limit local memory usage)
# - Adjust number of nodes to 1 or 3 depending on the practice goal
Things to verify when generating:
# Additional components:
# - Elastic APM Server
# - APM Agent (connected to test app)
#
# Start: docker compose -f docker-compose.yml -f docker-compose.apm.yml up -d
# Components:
# - MySQL 8.x (slow_query_log enabled, long_query_time=0.5)
# - Adminer or phpMyAdmin (web-based SQL client)
#
# Ports:
# - 3306: MySQL
# - 8080: Adminer
#
# Initialization:
# - .sql files in the data/ directory are executed automatically
# - Includes scripts for generating large datasets for practice
Things to verify when generating:
# Additional components:
# - MySQL Exporter (for Prometheus)
# - Prometheus
# - Grafana (MySQL Overview dashboard)
#
# Metrics to observe:
# - QPS, query type ratio
# - InnoDB Buffer Pool Hit Ratio
# - Connection count
# - Slow Query count
# Components:
# - Redis (standalone, Sentinel, or Cluster mode)
# - Redis Insight (GUI client)
#
# Ports:
# - 6379: Redis
# - 5540: Redis Insight
#
# Mode selection:
# - Standalone: basic data structures, caching practice
# - Sentinel (3 nodes): high availability, failover practice
# - Cluster (6 nodes): sharding, slot distribution practice
Things to verify when generating:
# Additional components:
# - Redis Exporter (for Prometheus)
# - Prometheus + Grafana
#
# Metrics to observe:
# - Memory usage (used_memory vs maxmemory)
# - Hit Rate (keyspace_hits / keyspace_misses)
# - Connection count
# - Eviction count
/oh-my-study-with-me:study session)labs/[technology]/ directory.docker compose up -d.docker compose down (preserve data) or docker compose down -v (full cleanup)When a request to "try it hands-on" comes up during Phase 3 (Verification) of a study session:
sudo sysctl -w vm.max_map_count=262144 is required (on macOS, this is handled in Docker Desktop settings)