DevEx LogoMy App
Guides

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.)
  • curl or wget installed
  • sudo access 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-certificates

Quick 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 | bash

What the installer does:

  1. Downloads the latest DevEx binary for your platform
  2. Installs to ~/.local/share/devex/
  3. Updates your PATH in shell configuration
  4. Copies default configuration files
  5. 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.yaml

Preview Installation

Before making changes, preview what will be installed:

# Show all default applications
devex install --list

# Preview installation (dry-run)
devex install --dry-run

Install 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 databases

Configure 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 configure

Understanding DevEx Structure

Configuration Files

DevEx uses four main configuration files:

FilePurposeLocation
applications.yamlDefines installable software~/.local/share/devex/config/
environment.yamlProgramming languages, fonts~/.local/share/devex/config/
desktop.yamlDesktop themes and settings~/.local/share/devex/config/
system.yamlGit, 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 customizations

Your 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 status

Install 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 optional

Managing Your Environment

# Show installed applications
devex list --installed

# Uninstall applications
devex uninstall firefox

# Update application lists
devex update

# Clean up cached files
devex clean

Common 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.1

Backend 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 terraform

Data 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 rstudio

Customization 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.yaml

Add 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-tool

Theme 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-theme

Troubleshooting 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/devex

Path 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 ~/.bashrc

Installation 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.log

Network 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:port

Best Practices

DevEx Best Practices:

  1. Start with defaults - Run the default installation first
  2. Use dry-run - Always preview changes with --dry-run
  3. Backup configs - Keep your customizations in version control
  4. Regular updates - Run devex update weekly
  5. Test changes - Validate configurations before applying
  6. 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 install

Configuration 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:

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.

On this page