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
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--non-interactive | bool | false | Run automated setup without user interaction | |
--verbose | -v | bool | false | Enable verbose output |
--dry-run | -n | bool | false | Show 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, snapShell 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 databaseDevelopment 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 themeInstallation
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 setupNon-Interactive Setup
# Run with default selections
devex setup --non-interactive
# Non-interactive with verbose output
devex setup --non-interactive --verbosePreview Mode
# See what would be installed without doing it
devex setup --dry-runConfiguration 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.yamlError Handling
If setup encounters errors, it will:
- Continue with other installations when possible
- Show a summary of what succeeded and failed
- Provide specific error messages for troubleshooting
- 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/binNetwork Issues:
# Retry with verbose output
devex setup --verbose
# Check network connectivity
curl -I https://github.comPackage Manager Issues:
# Update package lists first
sudo apt update # Ubuntu/Debian
brew update # macOSAdvanced 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 dockerPlatform-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:
source ~/.zshrcdevex status to confirm everything installeddevex config to fine-tune your setupRelated Commands
devex install- Install without interactive promptsdevex config- Manage configuration filesdevex status- Check installation statusdevex add- Add individual applications later
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.