DevEx LogoMy App
CLI Reference

devex setup

Interactive guided setup for your development environment

devex setup

The setup command provides an interactive, guided installation experience for configuring your development environment. It walks you through selecting programming languages, databases, and applications to create a customized setup tailored to your needs.

Usage

devex setup [flags]

Description

The setup command includes:

  • Programming language selection (Node.js, Python, Go, Ruby, etc.)
  • Database installation (PostgreSQL, MySQL, Redis)
  • Essential development tools and terminal applications
  • Desktop applications (if desktop environment detected)
  • Automatic dependency management and ordering
  • Git configuration setup
  • Theme and desktop environment configuration

Options

FlagShortTypeDefaultDescription
--non-interactiveboolfalseRun automated setup without user interaction
--verbose-vboolfalseEnable verbose output
--dry-run-nboolfalseShow what would be installed without executing

Interactive Setup Flow

Platform Detection

DevEx automatically detects your operating system, distribution, and desktop environment.

Platform detected: Ubuntu 22.04 (GNOME 42)
Package managers: apt, flatpak, snap

Shell Selection

Choose your preferred shell and configure it with useful plugins and themes.

  • Oh My Zsh installation
  • Popular plugins (git, docker, kubectl)
  • Agnoster theme
  • Auto-suggestions and syntax highlighting

Programming Languages

Select the programming languages you work with:

Node.js

JavaScript runtime with npm/yarn

Python

Python 3.x with pip and virtualenv

Go

Go programming language

Ruby

Ruby with RVM or rbenv

Rust

Rust with cargo

Java

OpenJDK with Maven

Databases

Choose databases for your development environment:

◯ PostgreSQL - Advanced open source database
◯ MySQL - Popular relational database
◯ Redis - In-memory data structure store
◯ SQLite - Lightweight file-based database
◯ MongoDB - Document-oriented NoSQL database

Development Tools

Essential tools are pre-selected, with options to add more:

Pre-selected (essential):

  • Git - Version control
  • curl/wget - HTTP clients
  • Docker - Containerization
  • VS Code or Neovim - Code editor

Optional additions:

  • Postman - API testing
  • DBeaver - Database client
  • Slack/Discord - Communication
  • Chrome/Firefox - Web browsers

Git Configuration

Set up your Git identity and preferences:

Full Name: [Your Name]
Email: [your.email@example.com]

Git aliases will be configured:
✓ git co (checkout)
✓ git br (branch)  
✓ git ci (commit)
✓ git st (status)

Desktop Theme (Linux with desktop environment)

Choose a visual theme for your desktop environment:

◯ Tokyo Night - Dark theme with purple accents
◯ Dracula - Dark theme with purple/pink
◯ Gruvbox - Retro warm colors
◯ Adwaita Dark - GNOME default dark theme

Installation

Review your selections and begin installation:

Installation Summary:
┌─────────────────────┬─────────────────┐
│ Category            │ Items           │
├─────────────────────┼─────────────────┤
│ Programming Lang.   │ Node.js, Python │
│ Databases          │ PostgreSQL      │
│ Development Tools  │ 12 applications │
│ Desktop Apps       │ 5 applications  │
└─────────────────────┴─────────────────┘

Proceed with installation? [Y/n]

Examples

Basic Setup

# Start interactive guided setup
devex setup

Non-Interactive Setup

# Run with default selections
devex setup --non-interactive

# Non-interactive with verbose output
devex setup --non-interactive --verbose

Preview Mode

# See what would be installed without doing it
devex setup --dry-run

Configuration Integration

The setup command works with your configuration files in ~/.local/share/devex/config/:

Uses built-in default configurations for all selections. Perfect for getting started quickly.

devex setup
# Uses defaults from:
# - applications.yaml
# - environment.yaml  
# - desktop.yaml
# - system.yaml

Error Handling

If setup encounters errors, it will:

  1. Continue with other installations when possible
  2. Show a summary of what succeeded and failed
  3. Provide specific error messages for troubleshooting
  4. Suggest recovery commands for common issues

Common Issues

Permission Errors:

# Setup will prompt for sudo when needed
# If issues persist, check:
sudo chmod 755 /usr/local/bin

Network Issues:

# Retry with verbose output
devex setup --verbose

# Check network connectivity
curl -I https://github.com

Package Manager Issues:

# Update package lists first
sudo apt update  # Ubuntu/Debian
brew update      # macOS

Advanced Options

Custom Installation Order

Setup automatically determines the optimal installation order based on dependencies, but you can influence this:

# In your applications.yaml
applications:
  development:
    - name: docker
      priority: 1  # Install first
    - name: node
      priority: 2  # Install after docker

Platform-Specific Behavior

Setup adapts to your platform:

  • Detects distribution (Ubuntu, Fedora, Arch, etc.)
  • Uses appropriate package manager (apt, dnf, pacman)
  • Configures desktop environment (GNOME, KDE, XFCE)
  • Sets up systemd services when needed

Post-Setup

After setup completes:

Review Installation: Check the summary for any failed installations
Shell Reload: Restart your terminal or run source ~/.zshrc
Verify Tools: Run devex status to confirm everything installed
Customize: Use devex config to fine-tune your setup

Pro Tip: Run devex setup in a new environment, then use devex config export to save your selections as a reusable template for other machines.

On this page