Skip to content

syamsf/dev-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Internal Dev Tools Taskfile

Task-based shortcuts to run local Docker Compose stacks from the repo root.

Prerequisites

  • Docker (with Compose support)
  • task
  • gum
  • fzf

Quick Start

From repo root:

task --list
task ensure-network
task up:core
task up -- redis
task interactive

ensure-network auto-creates my_shared_network if missing.

Stack Tasks

Generic commands — pass stack name after --:

task up -- redis
task down -- monitoring
task restart -- elk
task logs -- postgres
task logs:follow -- kafka
task status -- nginx

Available operations:

  • task up -- <stack>
  • task down -- <stack>
  • task restart -- <stack>
  • task logs -- <stack>
  • task logs:follow -- <stack>
  • task status -- <stack>
  • task status:all (all stacks at once)

Current stack names:

  • redis
  • postgres
  • starrocks
  • minio
  • metabase
  • pgadmin
  • redis_insight
  • mailpit
  • mariadb
  • phpmyadmin
  • rabbitmq
  • kafka
  • elk
  • meilisearch
  • monitoring
  • openproject
  • nginx
  • nginx_proxy_manager
  • mattermost
  • valkey
  • rustfs
  • authentik
  • authelia
  • keycloak
  • harbor
  • openbao
  • opentelemetry
  • jaeger
  • signoz
  • outline
  • ntfy
  • openfeature
  • apache2
  • wordpress
  • mongodb
  • mongo_express
  • clickhouse
  • uptime_kuma
  • playwright
  • pyroscope
  • tempo
  • nats
  • mosquitto
  • pgvector
  • chromadb
  • qdrant
  • langfuse
  • mlflow
  • litellm

Dependency Notes

  • metabase depends on postgres (the task already boots postgres first).
  • pgadmin should run after postgres.
  • redis_insight should run after redis.
  • All new stacks are self-contained (bundle their own DB/cache where needed).
  • mongo_express should run after mongodb.

Service Ports

Stack Port(s) Description
Redis 6379 Redis server
Postgres 5432 PostgreSQL
StarRocks 9030, 8030, 8040 StarRocks FE/BE
MinIO 9000, 9001 S3 API + Console
Metabase 3000 BI Dashboard
PGAdmin 5050 Postgres admin
Redis Insight 5540 Redis GUI
Mailpit 8025, 1025 Web UI + SMTP
MariaDB 3307 MySQL-compatible
phpMyAdmin 8080 MySQL admin
RabbitMQ 5672, 15672 AMQP + Management UI
Kafka 9092, 29092 Broker + Internal
Kafka UI 8081 Kafka dashboard
Elasticsearch 9200 Search/analytics
Logstash 5044, 5000 Beats + TCP input
Kibana 5601 ES dashboard
Meilisearch 7700 Search engine
Grafana 3001 Dashboards
Prometheus 9090 Metrics
Loki 3100 Log aggregation
Alertmanager 9093 Alert routing
Alerta 8082 Alert management
Blackbox Exporter 9115 Probe exporter
Fluentbit 24224 Log forwarder
OpenProject 8083 Project management
Nginx 8088, 8443 Web server
Nginx Proxy Manager 80, 443, 81 Reverse proxy + Admin
Mattermost 8065 Team chat
Valkey 6380 Redis-compatible KV
RustFS 9002 S3-compatible storage
Authentik 9080, 9443 Identity provider
Authelia 9091 Auth proxy
Keycloak 8084 Identity provider
Harbor 8085 Container registry
OpenBao 8200 Secrets management
OpenTelemetry 4317, 4318, 8888 gRPC + HTTP + metrics
Jaeger 16686, 14268, 4319, 4320 UI + Collector + OTLP
SigNoz 3301, 4321, 4322 Frontend + OTLP
Outline 3002 Wiki
ntfy 8086 Push notifications
OpenFeature (flagd) 8013 Feature flags
Apache2 8087 Web server
WordPress 8089 CMS
MongoDB 27017 Document database
Mongo Express 8091 MongoDB web UI
ClickHouse 8123, 9009 HTTP + Native client
Uptime Kuma 3003 Monitoring dashboard
Playwright 3004 Browser testing
Pyroscope 4040 Continuous profiling
Tempo 3200, 4327 Tracing + OTLP gRPC
NATS 4222, 8222, 6222 Client + Monitor + Cluster
Mosquitto 1883, 9001 MQTT + WebSockets
pgvector 5433 pgvector-enabled Postgres
Qdrant 6333, 6334 HTTP + gRPC vector DB
ChromaDB 8000 Vector DB
Langfuse Web 3005 LLM observability UI
Langfuse Worker 3030 Async ingestion worker
Langfuse Postgres 5434 Langfuse relational store
Langfuse ClickHouse 8125, 9010 Langfuse trace/analytics store
Langfuse Redis 6381 Langfuse cache/queue
Langfuse MinIO 9003, 9004 Langfuse S3 event storage (API + console)
MLflow 5002 Experiment tracking UI
LiteLLM 4000 OpenAI-compatible LLM gateway/proxy

Dashboard URLs

Service URL
Mailpit http://localhost:8025
phpMyAdmin http://localhost:8080
RabbitMQ Management http://localhost:15672
Kafka UI http://localhost:8081
Kibana http://localhost:5601
Meilisearch http://localhost:7700
Grafana http://localhost:3001
Prometheus http://localhost:9090
Alertmanager http://localhost:9093
Alerta http://localhost:8082
OpenProject http://localhost:8083
Nginx Proxy Manager Admin http://localhost:81
Mattermost http://localhost:8065
Authentik http://localhost:9080
Authelia http://localhost:9091
Keycloak http://localhost:8084
Harbor http://localhost:8085
OpenBao http://localhost:8200
Jaeger UI http://localhost:16686
SigNoz http://localhost:3301
Outline http://localhost:3002
ntfy http://localhost:8086
WordPress http://localhost:8089
MongoDB (Mongo Express) http://localhost:8091
ClickHouse HTTP http://localhost:8123
Uptime Kuma http://localhost:3003
Pyroscope http://localhost:4040
Tempo http://localhost:3200
NATS Monitoring http://localhost:8222
Langfuse http://localhost:3005
MLflow http://localhost:5002

Host Requirements

ELK Stack

Elasticsearch requires increased virtual memory. Run on the host:

sudo sysctl -w vm.max_map_count=262144

To persist across reboots, add to /etc/sysctl.conf:

vm.max_map_count=262144

Config Files Convention

Stacks that need configuration files store them in a config/ subdirectory:

Stack Config Files
elk pipeline/logstash.conf
monitoring config/prometheus.yml, config/loki.yml, config/promtail.yml, config/fluent-bit.conf, config/parsers.conf, config/blackbox.yml, config/alertmanager.yml, config/alertad.conf
nginx config/nginx.conf, config/conf.d/default.conf
authelia config/configuration.yml, config/users_database.yml
harbor config/harbor.yml
openbao config/config.hcl
opentelemetry config/otel-collector-config.yaml
signoz config/otel-collector-config.yaml
openfeature config/flags.json
apache2 config/httpd-vhosts.conf
tempo config/tempo.yaml
mosquitto config/mosquitto.conf
litellm config/config.yaml

Utility Tasks

  • task ps - docker ps
  • task images - docker images
  • task volumes - docker volume ls
  • task networks - docker network ls
  • task status:all - docker compose ps across all configured stacks
  • task status:<stack> - per-stack compose status
  • task prune:images - interactive dangling image prune
  • task prune:images:force - non-interactive prune

Interactive Runner

Run:

task interactive

Flow:

  1. pick stack
  2. pick action (up, down, logs, restart, status)
  3. if action is logs, pick mode (logs or logs:follow)

Picker backend priority:

  1. gum choose
  2. fzf
  3. shell select fallback (no extra dependency)

Core Meta Tasks

  • task up:core starts: redis, postgres, minio
  • task down:core stops them in reverse order

Adjust these if your usual stack set changes.

Add a New Stack

  1. Create stack directory, e.g. newstack/.
  2. Add newstack/docker-compose.yml.
  3. Add newstack/.env.example (if env vars needed).
  4. Add newstack/config/ directory (if config files needed).
  5. Add the stack name to the STACKS variable in Taskfile.yml.

That's it. The generic tasks (up, down, restart, logs, logs:follow, status) work automatically for any directory with a docker-compose.yml.

Usage: task up -- newstack

Notes

  • Existing script.sh can still be used, but Taskfile.yml is now the primary entry point.
  • For stack-specific env config, keep each stack's .env local to its directory.
  • Copy .env.example to .env and customize before starting a stack.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors