devex install
Install your complete development environment automatically
devex install
The install command automates the installation of your complete development environment based on your configuration files. Unlike the interactive setup command, install runs non-interactively using your pre-configured settings.
Usage
devex install [flags]Description
The install command handles:
- Development tools (Git, Docker, VS Code, Neovim, etc.)
- Programming languages (Node.js, Python, Go, Ruby, etc.)
- Databases (PostgreSQL, MySQL, Redis, SQLite)
- Optional applications (browsers, communication tools, etc.)
- Package repository configuration and GPG keys
- Dependency resolution and conflict handling
- Post-installation configuration and shell setup
- Theme application and desktop environment setup
Installation Categories
Development Tools
Essential coding and debugging tools like Git, Docker, VS Code, and terminal utilities
Programming Languages
Language runtimes and package managers via mise (Node.js, Python, Go, etc.)
Databases
Local development databases like PostgreSQL, MySQL, Redis, and SQLite
Optional Applications
Productivity apps, browsers, and communication tools
Options
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--category | -c | string | all | Install specific category (development, databases, optional) |
--app | -a | string[] | Install specific applications only | |
--skip | -s | string[] | Skip specific applications | |
--force | -f | bool | false | Force reinstall even if already installed |
--verbose | -v | bool | false | Enable verbose output |
--dry-run | -n | bool | false | Show what would be installed without executing |
Examples
Basic Installation
# Install everything with default configuration
devex install
# Install with verbose output
devex install --verbose
# Preview what would be installed
devex install --dry-runCategory-Specific Installation
# Install only development tools
devex install --category development
# Includes: git, docker, vscode, curl, etc.Selective Installation
# Install specific applications
devex install --app docker --app postgresql
# Install everything except certain apps
devex install --skip slack --skip chrome
# Force reinstall of specific tools
devex install --app docker --forceInstallation Process
Platform Detection
DevEx detects your operating system and selects appropriate package managers:
Platform: Ubuntu 22.04 LTS (x86_64)
Package managers: apt, flatpak, snap
Desktop environment: GNOME 42Configuration Loading
Loads configuration from:
- User overrides:
~/.devex/ - Default configs:
~/.local/share/devex/config/
Loading configurations:
✓ applications.yaml (247 applications)
✓ environment.yaml (15 languages, 8 fonts)
✓ desktop.yaml (3 themes, 12 extensions)
✓ system.yaml (git, ssh, terminal)Dependency Resolution
Analyzes dependencies and determines optimal installation order:
Dependency analysis:
┌─────────────────┬─────────────────────────┐
│ Application │ Dependencies │
├─────────────────┼─────────────────────────┤
│ docker-compose │ docker │
│ kubectl │ curl │
│ node (via mise) │ mise, curl, git │
└─────────────────┴─────────────────────────┘
Installation order: curl → git → mise → docker → node → docker-composePackage Repository Setup
Configures third-party repositories and GPG keys:
Setting up repositories:
✓ Docker official repository
✓ Google Chrome repository
✓ VS Code repository
✓ Node.js via miseApplication Installation
Installs applications using platform-appropriate methods:
Installing applications:
[1/24] git (apt) ✓
[2/24] curl (apt) ✓
[3/24] docker (apt) ✓
[4/24] vscode (apt) ✓
[5/24] node@lts (mise) ✓
...Post-Installation Configuration
Applies configuration files and runs setup scripts:
Post-installation:
✓ Git configured with user.name and user.email
✓ Docker service started and enabled
✓ VS Code extensions installed
✓ Shell configured with aliases and pathsPlatform-Specific Behavior
Package Managers:
- Primary: Distribution package manager (apt, dnf, pacman)
- Universal: Flatpak, Snap
- Languages: mise for programming languages
- Containers: Docker official repositories
System Integration:
- Systemd service management
- Desktop environment configuration
- Font installation and cache refresh
- Shell configuration and defaults
# Linux-specific features
sudo systemctl enable docker # Service management
fc-cache -fv # Font cache refresh
gsettings set ... # GNOME settingsError Handling and Recovery
DevEx includes robust error handling to ensure partial failures don't break your entire setup.
Installation Resilience
Installation Results:
✓ 18 applications installed successfully
⚠ 2 applications had warnings
✗ 1 application failed to install
Failed:
- slack: Repository key verification failed
Warnings:
- docker: Service not started (run 'sudo systemctl start docker')
- vscode: Some extensions failed to install
Recovery suggestions:
→ Run 'devex recovery check' to diagnose issues
→ Use 'devex install --app slack --force' to retry failed installsCommon Recovery Commands
# Check for and fix common issues
devex recovery check
# Retry failed installations
devex install --app slack --force
# Repair broken dependencies
devex recovery repair
# View detailed error logs
devex logs --verboseConfiguration File Integration
The install command reads from these configuration files:
Applications Configuration
# ~/.local/share/devex/config/applications.yaml
applications:
development:
- name: docker
description: 'Container platform'
category: 'Development Tools'
default: true
linux:
install_method: 'apt'
install_command: 'docker-ce'
apt_sources:
- key_source: "https://download.docker.com/linux/ubuntu/gpg"
source_repo: "deb [arch=amd64] https://download.docker.com/linux/ubuntu jammy stable"
post_install:
- shell: "sudo systemctl enable docker"
- shell: "sudo usermod -aG docker $USER"Environment Configuration
# ~/.local/share/devex/config/environment.yaml
programming_languages:
- name: "Node.js LTS"
install_method: "mise"
install_command: "node@lts"
default: true
post_install:
- shell: "npm install -g yarn pnpm"Performance and Optimization
Parallel Installation
DevEx optimizes installation performance:
Parallel installation groups:
Group 1: git, curl, wget (no dependencies)
Group 2: docker, mise (depends on Group 1)
Group 3: node, python (depends on mise)
Group 4: docker-compose (depends on docker)
Estimated time: 8-12 minutesCaching
# DevEx caches downloaded packages and metadata
ls ~/.cache/devex/
# downloads/ - Downloaded packages
# metadata/ - Package metadata cache
# repositories/ - Repository configurationsBandwidth Optimization
# Use local package mirrors when available
devex install --use-mirrors
# Skip large optional downloads
devex install --skip-fonts --skip-themesAdvanced Usage
Custom Installation Scripts
You can add custom pre/post-installation scripts:
applications:
development:
- name: custom-tool
pre_install:
- shell: "echo 'Preparing custom tool installation'"
- shell: "mkdir -p /opt/custom-tool"
post_install:
- shell: "custom-tool --setup"
- file:
source: "configs/custom-tool.conf"
destination: "~/.config/custom-tool/config"Environment-Specific Installation
# Production server setup (minimal)
devex install --category development --skip slack --skip chrome
# Development workstation (full setup)
devex install --category all
# CI/CD environment (tools only)
devex install --app git --app docker --app kubectlIntegration with Other Commands
The install command works seamlessly with other DevEx commands:
# Install, then check status
devex install && devex status
# Install specific template, then add extras
devex template apply backend && devex install --app postman
# Install with custom config
devex config edit applications && devex installTroubleshooting
Common Issues
# DevEx will prompt for sudo when needed
# If you get permission errors:
# Check sudo access
sudo -v
# Fix common permission issues
sudo chown -R $USER:$USER ~/.local/share/devex
sudo chmod 755 /usr/local/binRelated Commands
devex setup- Interactive setup wizarddevex add- Add individual applicationsdevex status- Check installation statusdevex recovery- Fix installation issuesdevex config- Manage configuration files
Pro Tip: Use devex install --dry-run --verbose to see exactly what will be installed and in what order before committing to the installation.