Getting Started with DevEx
Complete beginner's guide to setting up your development environment with DevEx
Getting Started with DevEx
DevEx is a powerful CLI tool that streamlines development environment setup across Linux, macOS, and Windows. This guide will walk you through your first DevEx installation and help you understand core concepts.
What is DevEx?
DevEx automates the installation and configuration of:
Development Tools
Git, VS Code, Docker, terminal tools
Programming Languages
Node.js, Python, Go, Java via mise
Desktop Themes
GNOME, KDE, macOS appearance settings
System Configuration
Git settings, SSH keys, shell setup
Prerequisites
For detailed installation instructions, see our Installation Guide. For platform-specific requirements, check Platform Guides.
Before installing DevEx, ensure you have:
- A supported Linux distribution (Ubuntu, Debian, Fedora, Arch, etc.)
curlorwgetinstalledsudoaccess for system packages- Internet connection for downloads
# Check if you have curl or wget
which curl || which wget
# Install if missing (Ubuntu/Debian) - Include CA certificates
sudo apt update && sudo apt install -y curl wget ca-certificatesQuick Installation
The fastest way to get started is with our one-line installer:
Security First: Before executing any remote script, review our Security Best Practices. You can inspect the installer:
curl -fsSL https://devex.sh/install -o devex-install.sh
less devex-install.sh # Review before execution# Download and execute installer - v1.0.0
curl -fsSL https://devex.sh/install | bashWhat the installer does:
- Downloads the latest DevEx binary for your platform
- Installs to
~/.local/share/devex/ - Updates your PATH in shell configuration
- Copies default configuration files
- Runs initial setup with default applications
Step-by-Step Setup
If you prefer manual control over the installation process:
Download DevEx Binary
Visit GitHub Releases and download the appropriate binary:
# Linux x64 - Pin to specific version for security
wget https://github.com/jameswlane/devex/releases/download/v1.0.0/devex_linux_amd64.tar.gz
# Verify checksum (recommended)
wget https://github.com/jameswlane/devex/releases/download/v1.0.0/checksums.txt
sha256sum -c checksums.txt
# Extract and install
tar -xzf devex_linux_amd64.tar.gz
chmod +x devex
sudo mv devex /usr/local/bin/Initialize Configuration
Set up the configuration directory and download default configs:
# Initialize DevEx configuration
devex config init
# Verify configuration files
ls ~/.local/share/devex/config/
# Should show: applications.yaml, environment.yaml, desktop.yaml, system.yamlPreview Installation
Before making changes, preview what will be installed:
# Show all default applications
devex install --list
# Preview installation (dry-run)
devex install --dry-runInstall Default Environment
Install the default development tools:
# Install all default applications
sudo devex install
# Or install specific categories
sudo devex install --category development
sudo devex install --category databasesConfigure Your Environment
Set up personal configurations:
# Configure Git (required for development)
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
# Apply system configurations
devex system configureUnderstanding DevEx Structure
Configuration Files
DevEx uses four main configuration files:
| File | Purpose | Location |
|---|---|---|
applications.yaml | Defines installable software | ~/.local/share/devex/config/ |
environment.yaml | Programming languages, fonts | ~/.local/share/devex/config/ |
desktop.yaml | Desktop themes and settings | ~/.local/share/devex/config/ |
system.yaml | Git, SSH, terminal config | ~/.local/share/devex/config/ |
Directory Structure
~/.local/share/devex/
├── bin/devex # DevEx binary
├── config/ # Default configurations
│ ├── applications.yaml
│ ├── environment.yaml
│ ├── desktop.yaml
│ └── system.yaml
└── assets/ # Configuration templates and files
~/.devex/ # User overrides (optional)
├── applications.yaml # Override default apps
└── custom-config.yaml # Your customizationsYour First DevEx Commands
Check Installation Status
# Show DevEx version
devex --version
# Check system information
devex system info
# Validate configuration files
devex config validate
# Show installation status
devex statusInstall Additional Software
# List available applications
devex install --list
# Install specific applications
devex install docker
devex install vscode
devex install postgresql
# Install by category
devex install --category databases
devex install --category optionalManaging Your Environment
# Show installed applications
devex list --installed
# Uninstall applications
devex uninstall firefox
# Update application lists
devex update
# Clean up cached files
devex cleanCommon Use Cases
Web Developer Setup
Install essential web development tools:
# Core web development stack with version pinning
devex install git
devex install node # Installs via mise
devex install vscode
devex install docker
# Additional tools
devex install firefox
devex install postman
devex install mongodb
# Set up Node.js environment with specific versions
mise install node@20.11.0 # Pin to LTS version
mise global node@20.11.0
# Install global packages with specific versions
npm install -g @vue/cli@5.0.8 create-react-app@5.0.1Backend Developer Setup
Set up backend development environment:
# Programming languages with version management
devex install python
devex install go
devex install java
# Pin language versions for consistency
mise install python@3.11.7
mise install go@1.21.6
mise global python@3.11.7 go@1.21.6
# Databases
devex install postgresql
devex install redis
devex install mongodb
# Development tools
devex install docker
devex install kubernetes-cli
devex install terraformData Science Setup
Configure Python data science environment:
# Python environment with version pinning
devex install python
devex install jupyter
# Pin Python version for data science
mise install python@3.11.7
mise global python@3.11.7
# Data science tools with pinned versions
pip install pandas==2.1.4 numpy==1.24.4 matplotlib==3.8.2 seaborn==0.13.0 scikit-learn==1.3.2
# Additional tools
devex install r
devex install rstudioCustomization Basics
For advanced customization options, see our Customization Guide. For detailed configuration documentation, check Configuration Reference.
Override Default Applications
Create custom application lists:
# Copy default config for editing
cp ~/.local/share/devex/config/applications.yaml ~/.devex/
# Edit your custom configuration
nano ~/.devex/applications.yamlAdd Custom Applications
Example custom application:
applications:
development:
- name: my-custom-tool
description: "My custom development tool"
category: "Custom Tools"
default: false
linux:
install_method: curlpipe
install_command: "https://install.my-tool.com/install.sh"
macos:
install_method: brew
install_command: my-toolTheme Configuration
Apply desktop themes:
# List available themes
devex theme list
# Apply a theme
devex theme apply tokyo-night
# Create custom theme
devex theme create my-themeTroubleshooting Common Issues
Permission Errors
# Fix ownership of DevEx directories
sudo chown -R $USER:$USER ~/.local/share/devex
sudo chown -R $USER:$USER ~/.devex
# Ensure binary is executable
chmod +x ~/.local/share/devex/bin/devexPath Issues
# Check if DevEx is in PATH
which devex
# Manually add to PATH (if needed)
echo 'export PATH="$PATH:$HOME/.local/share/devex/bin"' >> ~/.bashrc
source ~/.bashrcInstallation Failures
# Check system requirements
devex system check
# Validate configuration
devex config validate
# Run with verbose output
devex --verbose install docker
# Check logs
tail ~/.local/share/devex/logs/devex.logNetwork Issues
# Test connectivity
curl -I https://devex.sh
# Use alternative download method
devex config set download_method wget
# Configure proxy (if needed)
export https_proxy=http://proxy:portBest Practices
DevEx Best Practices:
- Start with defaults - Run the default installation first
- Use dry-run - Always preview changes with
--dry-run - Backup configs - Keep your customizations in version control
- Regular updates - Run
devex updateweekly - Test changes - Validate configurations before applying
- Document customizations - Comment your custom configurations
Team Collaboration
If working in a team:
# Share team configuration
git init ~/.devex
git add ~/.devex/applications.yaml
git commit -m "Team DevEx configuration"
git remote add origin https://github.com/yourteam/devex-config
git push -u origin main
# Team members can clone and use
git clone https://github.com/yourteam/devex-config ~/.devex
devex installConfiguration Management
# Backup current configuration
cp -r ~/.devex ~/devex-backup-$(date +%Y%m%d)
# Version control your configurations
cd ~/.devex
git init
git add .
git commit -m "Initial DevEx configuration"Next Steps
Now that you have DevEx installed and understand the basics:
Team Setup
Configure DevEx for team collaboration
Customization
Advanced configuration and themes
Examples
Real-world development setups
CLI Reference
Complete command reference
Learn More
- Automation: Set up CI/CD pipelines with DevEx
- Advanced Configuration: Create complex application setups
- Platform-Specific Features: Leverage platform-specific capabilities
- Community: Join the DevEx community for tips and contributions
Congratulations! You now have a fully configured development environment with DevEx. The tool will help you maintain consistency across machines and collaborate effectively with your team.