Skip to content

Latest commit

Β 

History

117 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🍺 Homebrew DevOps Tools

License: MIT Homebrew Tap PRs Welcome

Enterprise-grade, AI-ready installer and profile manager for macOS developer workstations. Provision complete dev environments in minutes with role-based profiles, intelligent tool detection, and zero-risk dry-run previews.

βœ… Safe to rerun anytime β€” Gracefully skips already-installed tools
⚑ AI/LLM Ready β€” Ollama, LangChain, Jupyter included
πŸ›‘οΈ Security-First β€” Trivy, Grype, tfsec pre-configured
πŸ€– Idempotent & Reliable β€” Works with Homebrew, npm, pipx, and taps
🎯 Role-Based Profiles β€” Choose what you need, skip what you don't
πŸ’» Modern Toolchain β€” Python 3.12/3.13, uv, bun, deno support


✨ What's New (2026 Update)

Phase 1: AI/LLM Integration

  • Ollama for local LLM inference
  • LangChain for LLM application development
  • JupyterLab for interactive notebooks
  • Improved Python tooling with uv, ruff

Phase 2: Modern Runtimes

  • uv β€” Ultra-fast Python package manager
  • bun β€” Lightning-fast JavaScript runtime
  • deno β€” TypeScript runtime with batteries included
  • Python 3.12 & 3.13 alongside 3.11

Phase 3: Security & Compliance

  • Trivy β€” Comprehensive vulnerability scanner
  • Grype β€” Software supply chain security
  • tfsec β€” Terraform security
  • cosign β€” Container signing

Phase 4: Observability & Monitoring

  • Prometheus β€” Metrics collection
  • Grafana β€” Visualization dashboards
  • Loki β€” Log aggregation

Phase 5: Modern Infrastructure

  • Pulumi β€” Infrastructure as Code
  • ArgoCD β€” GitOps automation
  • Kustomize β€” Kubernetes customization

Phase 6: Container Alternatives

  • colima β€” Docker Desktop alternative
  • podman β€” Container runtime without daemon

Phase 7: Web3 & Blockchain

  • Foundry β€” Solidity development toolkit

πŸ“¦ Available Profiles

Select from 11 curated profiles or create your own combinations:

Profile Purpose Key Tools
base All developers git, curl, jq, fzf, ripgrep, bat
frontend React/Vue/Next.js node, pnpm, yarn, bun, expo-cli
backend Python/API dev python@3.13, uv, poetry, ruff, pytest
devops Infrastructure Terraform, K8s, AWS CLI, Docker
ai ML/LLM dev Ollama, LangChain, Jupyter, uv
fullstack Everything frontend + backend + containers
security Sec ops trivy, grype, tfsec, vault, snyk
observability Monitoring prometheus, grafana, loki
infra-modern Modern IaC Pulumi, GitOps, K8s, Cloud CLIs
web3 Blockchain dev foundry, solidity tools
devx DX improvements starship, fzf, bat, ripgrep, prettier

πŸš€ Quick Start

Easiest: Install via Homebrew ⭐ (Recommended)

# Add the tap (one-time setup)
brew tap saimeda32/homebrew-devopstools

# Install devopstools
brew install devopstools

# Launch interactive setup
devopstools-setup

Then just follow the friendly menu to select profiles, skip tools, and preview!

Clone & Run (Direct)

git clone git@github-sai:saimeda32/homebrew-devopstools.git
cd homebrew-devopstools
./start.sh

Interactive Mode (Advanced)

# Full control with options
./scripts/interactive-select.sh

# Pre-select profiles
./scripts/interactive-select.sh --profiles base,frontend

# Preview before installing
./scripts/interactive-select.sh --profiles backend --dry-run

Command-Line Mode (Automation/CI)

# Dry-run preview (no changes)
./install.sh --profiles base,frontend --dry-run

# Install base + frontend (actual install)
./install.sh --profiles base,frontend --yes --no-dry-run

# Install and skip specific tools
./install.sh --profiles backend,ai --skip-tools npm:prettier,docker --yes

# Non-interactive automation (CI/CD)
./install.sh --profiles base,devops --yes --non-interactive --no-dry-run

devopstools-select

Or use direct commands

devopstools --profiles base,frontend --dry-run


---

## 🎯 Usage Examples

### Example 1: Set Up Frontend Developer
```bash
./install.sh --profiles base,frontend --skip-tools docker --yes

Installs: base utilities + Node.js, pnpm, yarn, bun, React tools (skips Docker)

Example 2: AI/ML Engineer Setup

./install.sh --profiles base,ai,security --skip-tools npm:prettier --yes

Installs: Python 3.13, Ollama, LangChain, Jupyter, security tools (skips prettier)

Example 3: DevOps Engineer Full Stack

./install.sh --profiles base,devops,security,observability,infra-modern --yes

Installs: Terraform, K8s, security scanners, monitoring stack, modern IaC

Example 4: Full-Stack with Selective Skips

./install.sh \
  --profiles fullstack,ai \
  --skip-tools npm:create-react-app,pipx:ipython \
  --dry-run

Preview before installing (no actual changes)


βš™οΈ Advanced Options

Tool Skipping (Graceful Exclusion)

Skip already-deployed tools or deprecated packages:

# Skip single tool
--skip-tools docker

# Skip multiple (comma-separated)
--skip-tools docker,npm:prettier,yarn

# Skip by package type
--skip-tools npm:serve          # Skip npm package
--skip-tools pipx:poetry        # Skip pipx package
--skip-tools tap:hashicorp/tap  # Skip tap

Smart Detection:

  • Checks if tool is already installed
  • Handles npm, pipx, and Homebrew packages
  • Works with partial matches (e.g., python skips all Python installs)

Dry-Run Mode

Preview what will be installed without making changes:

./install.sh --profiles base,frontend --dry-run

Output shows:

  • βœ“ Tools already installed (skipped)
  • β†’ Tools that would be installed
  • βœ– Any failures or blockers

Non-Interactive Mode

For automation and CI/CD pipelines:

./install.sh \
  --profiles base,devops \
  --non-interactive \
  --yes \
  --no-dry-run

No prompts, runs to completion, suitable for GitHub Actions/GitLab CI.


πŸ“‹ How It Works

Detection & Graceful Skipping

The installer intelligently detects already-installed tools:

Tool Type          Detection Method              Example
─────────────────  ──────────────────────────    ──────────────
Homebrew formulae  brew list --formula            git, docker, node
npm packages       npm list -g --depth=0          prettier, expo-cli
pipx packages      pipx list                      poetry, black
Taps               brew tap (list)                derailed/k9s
Special            command -v (in PATH)           tfswitch

If a tool is found, it's automatically skipped with a βœ“ checkmark.

Profile Merging

Multiple profiles are merged intelligently:

# Input
--profiles backend,ai

# Merged tools (deduplicated & sorted)
python@3.13
uv
poetry
pytest
ollama
langchain
jupyterlab
git
curl
yq

Installation Order

  1. Homebrew installations first (dependencies)
  2. Taps added before formulas that need them
  3. Node installed if npm packages needed
  4. Python3 installed if pipx packages needed
  5. npm/pipx packages installed last

πŸ› οΈ Configuration

Modify tools.txt

The tools.txt file is the canonical inventory. When adding a new tool:

# 1. Add to tools.txt (with category)
## My New Category
my-new-tool

# 2. Include in relevant profiles
profiles/backend.txt
profiles/ai.txt

# 3. Test in dry-run
./install.sh --profiles backend --dry-run

# 4. Commit and push
git add tools.txt profiles/backend.txt
git commit -m "Add my-new-tool"

Tool Format Support

git                          # Homebrew formula
python@3.13                  # Specific version
tap: hashicorp/tap          # Tap registration
hashicorp/tap/consul        # Tap-qualified formula
npm:prettier                # npm global package
pipx:poetry                 # pipx package

Add Custom Profile

# Create new profile
cat > profiles/custom.txt <<EOF
# My Custom Profile
git
python@3.13
npm:prettier
docker
docker-compose
EOF

# Test it
./install.sh --profiles custom --dry-run

# Use it
./install.sh --profiles custom --yes

πŸ“Š QA & Validation

Run comprehensive QA suite:

./scripts/qa-validate.sh

This validates:

  • βœ“ All profiles exist and are readable
  • βœ“ tools.txt syntax and contents
  • βœ“ Profile contents and tool types
  • βœ“ Script syntax and executability
  • βœ“ Tool format validation
  • βœ“ Dry-run mode functionality
  • βœ“ Profile merging logic
  • βœ“ Tool skipping mechanism
  • βœ“ Installation detection logic
  • βœ“ New features (AI, security, modern runtimes)

πŸ” Troubleshooting

Issue: "brew not available"

Solution: Install Homebrew first

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Issue: "Permission denied" on Homebrew directories

Solution: Fix permissions

sudo chown -R "$(whoami)" /opt/homebrew
# Or run installer with --yes flag to auto-fix
./install.sh --profiles base --yes

Issue: npm/pipx packages fail to install

Solution: Check prerequisites

# For npm packages
which npm && npm list -g --depth=0

# For pipx packages
which python3 && python3 -m pipx list

Issue: Specific tool won't install

Solution: Check logs

tail -f ~/Library/Logs/devopstools/install.log

Issue: Want to skip already-installed tool

Solution: Use --skip-tools

./install.sh --profiles backend --skip-tools npm:prettier --yes

πŸ”’ Safety Features

Dry-Run by Default (Interactive Mode)

When using interactive selector, it asks before installing:

Ready to proceed? [y/N]
> 

Idempotent Design

Safe to run multiple times:

  • Already-installed tools are skipped βœ“
  • No duplicate installations
  • Configuration files not overwritten
  • Non-destructive zsh management

Comprehensive Logging

All operations logged to:

~/Library/Logs/devopstools/install.log

Rollback Support

Backups created by manage_zshrc.sh:

~/.zshrc.bak.<timestamp>

πŸ‘₯ Team & Organization Usage

Enforce Baseline (CI/CD)

# GitHub Actions example
- name: Install DevOps Tools
  run: |
    brew tap saimeda32/devopstools
    devopstools --profiles base,devops \
      --yes --non-interactive --no-dry-run

Role-Based Provisioning

Frontend Team:

devopstools --profiles base,frontend,security

Backend Team:

devopstools --profiles base,backend,devops,security

ML Team:

devopstools --profiles base,ai,fullstack,security

DevOps Team:

devopstools --profiles base,devops,security,observability,infra-modern

πŸ“ Contributing & PRs

We welcome contributions! Follow this workflow:

# 1. Fork and clone
git clone git@github.com:YOUR_USERNAME/homebrew-devopstools.git
cd homebrew-devopstools

# 2. Create feature branch
git checkout -b feature/add-new-tool

# 3. Make changes
# - Add to tools.txt
# - Add to relevant profiles
# - Test with --dry-run

# 4. Run QA validation
./scripts/qa-validate.sh

# 5. Commit and push
git add -A
git commit -m "Add new-tool for ML workflows"
git push -u origin feature/add-new-tool

# 6. Create PR
gh pr create --fill

Contribution Guidelines

  • βœ… Test new tools with --dry-run before PR
  • βœ… Add to both tools.txt AND relevant profiles/*.txt
  • βœ… Run ./scripts/qa-validate.sh to pass QA
  • βœ… Include rationale for new tools in PR description
  • βœ… Keep profiles focused (use multiple small profiles, not one giant one)

πŸ“„ License

MIT License - See LICENSE for details.


🀝 Support


πŸŽ“ Learn More


Made with ❀️ for developers. Fork, contribute, and level up your team's setup!

About

A Homebrew Tap to install essential DevOps and Platform Engineering tools with automatic validation and skip logic.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages