- Add packages.yaml defining system packages across platforms - Add machine-profiles.yaml for different deployment scenarios - Support for server, workstation, and development profiles 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
172 lines
4.1 KiB
YAML
172 lines
4.1 KiB
YAML
# Machine Profile Configuration
|
|
# Define different package sets for different machine types
|
|
|
|
# Profile definitions
|
|
profiles:
|
|
# Minimal server profile - essential tools only
|
|
server:
|
|
description: "Minimal server setup with essential tools"
|
|
packages:
|
|
system_packages:
|
|
- curl
|
|
- git
|
|
- vim
|
|
- sshuttle
|
|
github_packages:
|
|
- ripgrep # Essential for log searching
|
|
- fd # Better find for system admin
|
|
optional_packages: [] # No optional packages on servers
|
|
|
|
# Development machine profile - full setup
|
|
dev:
|
|
description: "Full development machine setup"
|
|
packages:
|
|
system_packages:
|
|
- curl
|
|
- git
|
|
- vim
|
|
- sshuttle
|
|
- docker
|
|
- docker-compose
|
|
binary_packages:
|
|
- claude-code
|
|
- gemini-cli
|
|
github_packages:
|
|
- fzf
|
|
- bat
|
|
- ripgrep
|
|
- fd
|
|
- delta
|
|
npm_packages:
|
|
- pm2
|
|
python_packages:
|
|
- requests
|
|
zsh_plugins:
|
|
- zsh-syntax-highlighting
|
|
- zsh-autosuggestions
|
|
optional_packages:
|
|
- docker
|
|
- docker-compose
|
|
|
|
# Lightweight development - dev tools without heavy packages
|
|
dev-lite:
|
|
description: "Development setup without heavy packages (Docker, etc.)"
|
|
packages:
|
|
system_packages:
|
|
- curl
|
|
- git
|
|
- vim
|
|
- sshuttle
|
|
binary_packages:
|
|
- claude-code
|
|
- gemini-cli
|
|
github_packages:
|
|
- fzf
|
|
- bat
|
|
- ripgrep
|
|
- fd
|
|
- delta
|
|
npm_packages: []
|
|
python_packages:
|
|
- requests
|
|
zsh_plugins:
|
|
- zsh-syntax-highlighting
|
|
- zsh-autosuggestions
|
|
optional_packages: []
|
|
|
|
# Personal laptop/desktop
|
|
personal:
|
|
description: "Personal machine with all tools and conveniences"
|
|
packages:
|
|
system_packages:
|
|
- curl
|
|
- git
|
|
- vim
|
|
- sshuttle
|
|
- docker
|
|
- docker-compose
|
|
binary_packages:
|
|
- claude-code
|
|
- gemini-cli
|
|
- task-master
|
|
github_packages:
|
|
- fzf
|
|
- bat
|
|
- ripgrep
|
|
- fd
|
|
- delta
|
|
npm_packages:
|
|
- pm2
|
|
python_packages:
|
|
- requests
|
|
zsh_plugins:
|
|
- zsh-syntax-highlighting
|
|
- zsh-autosuggestions
|
|
optional_packages:
|
|
- docker
|
|
- docker-compose
|
|
|
|
# Minimal profile - bare bones
|
|
minimal:
|
|
description: "Absolute minimum setup"
|
|
packages:
|
|
system_packages:
|
|
- curl
|
|
- git
|
|
- vim
|
|
binary_packages: []
|
|
github_packages: []
|
|
npm_packages: []
|
|
python_packages: []
|
|
zsh_plugins: []
|
|
optional_packages: []
|
|
|
|
# Profile detection rules (auto-detection logic)
|
|
detection_rules:
|
|
# Check for server indicators
|
|
server:
|
|
- command: "systemctl is-active sshd"
|
|
condition: "active"
|
|
weight: 30
|
|
- command: "test -f /etc/systemd/system/multi-user.target"
|
|
condition: "exists"
|
|
weight: 20
|
|
- command: "who | wc -l"
|
|
condition: "== 0" # No logged in users
|
|
weight: 10
|
|
- environment: "SSH_CONNECTION"
|
|
condition: "set"
|
|
weight: 25
|
|
|
|
# Check for development indicators
|
|
dev:
|
|
- command: "which code || which vim || which nvim"
|
|
condition: "exists"
|
|
weight: 25
|
|
- command: "test -d ~/projects || test -d ~/dev || test -d ~/src"
|
|
condition: "exists"
|
|
weight: 20
|
|
- command: "which node || which python3 || which docker"
|
|
condition: "exists"
|
|
weight: 30
|
|
- environment: "DISPLAY"
|
|
condition: "set"
|
|
weight: 15
|
|
|
|
# Check for personal machine indicators
|
|
personal:
|
|
- command: "test -d ~/Desktop || test -d ~/Documents"
|
|
condition: "exists"
|
|
weight: 20
|
|
- command: "which firefox || which chrome || which safari"
|
|
condition: "exists"
|
|
weight: 25
|
|
- environment: "HOME"
|
|
condition: "contains /Users/ || contains /home/eric"
|
|
weight: 15
|
|
|
|
# Default fallbacks
|
|
defaults:
|
|
profile: "dev-lite" # Safe default
|
|
auto_detect: true
|
|
prompt_user: true # Ask user to confirm auto-detected profile |