Skip to content

A simple, cross-platform automation tool to quickly set up your development environment after a fresh OS install or reset.

Notifications You must be signed in to change notification settings

RushiK8626/dev-setup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Developer Environment Setup Tool

Easily automate the setup of your development environment on Windows, macOS, or Linux with a single script. Select from a wide range of popular tools, languages, IDEs, browsers, databases, and more.

Features

  • ✅ Interactive menu for tool selection
  • 🖥️ Cross-platform: Windows (winget), macOS (Homebrew), Linux (apt/snap/script)
  • 📦 Automatic package manager detection and installation
  • 💾 Save/load your configuration for easy reuse
  • 🎯 Wide selection of tools:
    • IDEs: VS Code, JetBrains Toolbox, IntelliJ, PyCharm, WebStorm, Sublime
    • Languages: Node.js, Python, Java (OpenJDK), Go, Rust, Ruby, PHP, .NET, Deno, Bun, Maven, Gradle
    • Tools: Git, GitHub Desktop, Docker, kubectl, Minikube, Postman, DBeaver
    • Browsers: Chrome, Firefox, Edge, Brave
    • Databases: MySQL, PostgreSQL, MongoDB, Redis
    • Communication: Slack
    • Power-user extras and more

Prerequisites

Windows

  • Windows 10/11
  • winget (App Installer) – pre-installed on most systems. If missing, install from Microsoft Store.

macOS

  • macOS 10.15 or later
  • Homebrew – will be installed automatically if missing.

Linux (Ubuntu/Debian)

  • Ubuntu 20.04+ or Debian-based distro
  • sudo privileges
  • apt and snap (usually pre-installed)

Installation

  1. Download the script:

    • From GitHub or copy dev-setup.py to your machine.
    • Or use:
      curl -O https://github.com/RushiK8626/dev-setup/dev-setup.py
  2. Make it executable (macOS/Linux):

chmod +x dev-setup.py

Usage

Run the tool:

Windows (PowerShell/CMD):

python dev-setup.py

macOS/Linux:

./dev-setup.py
# or
python3 dev-setup.py

Interactive Menu

The script will display an interactive menu with categories and tools. Select tools by number, type all to select everything, or use 0 to install selected tools.

Selection Examples

  • Install specific tools: 1 2 3
  • Install all tools: all
  • Add more tools: 4 5 (then 0 to install)
  • Cancel: 99

Configuration File

Your selections are saved to ~/.dev-setup-config.json for easy reuse on other machines or after a reset.

Adding Custom Tools

To add your own tools, edit the self.tools dictionary in dev-setup.py:

'toolname': {
  'name': 'Tool Display Name',
  'description': 'Brief description',
  'category': 'editors',  # or another category
  'windows': {'type': 'winget', 'id': 'Publisher.ToolName'},
  'darwin': {'type': 'brew', 'package': 'toolname'},
  'linux': {'type': 'apt', 'package': 'toolname'}
}

Supported package manager types:

  • Windows: winget
  • macOS: brew (with optional 'cask': True)
  • Linux: apt, snap, or script (for custom commands)

Example Workflow

  1. Fresh OS install
  2. Download and run dev-setup.py
  3. Select tools (e.g., 1 2 3 4 5 for Git, VS Code, Node, Python, Docker)
  4. Type 0 to confirm
  5. Type y to proceed
  6. Wait for installation to complete
  7. Restart terminal/system if needed

Troubleshooting

Windows

  • winget not found: Install "App Installer" from Microsoft Store
  • Installation failed: Run PowerShell/CMD as Administrator

macOS

  • Homebrew issues: Ensure Xcode Command Line Tools are installed:
    xcode-select --install
  • Permission denied: Some packages may need admin password

Linux

  • Permission denied: Use sudo when running the script
  • Package not found: Update package lists first:
    sudo apt update
  • Snap not installed: Install snap:
    sudo apt install snapd

Advanced Usage

Automated Installation (Non-Interactive)

You can modify the script to run non-interactively by pre-setting selected tools:

# Add at the beginning of run() method:
selected_tools = ['git', 'vscode', 'node', 'python']

CI/CD Integration

Use the saved config file for automated setups:

# Copy config to new machine
cp ~/.dev-setup-config.json /path/to/new/machine/

# Run with saved config (auto-accept)
python3 dev-setup.py

Supported Tools (Partial List)

Tool Windows macOS Linux
Git
VS Code
JetBrains Toolbox ⚠️
IntelliJ, PyCharm
Node.js, Yarn, Bun
Python 3
Java (OpenJDK)
Go, Rust, Ruby
PHP, .NET, Deno
Docker, kubectl
MySQL, PostgreSQL
MongoDB, Redis
Chrome, Firefox
Edge, Brave
DBeaver, Postman
Slack

⚠️ = Manual/partial support on some platforms

Contributing

Feel free to add more tools or improve OS compatibility! The tool is designed to be easily extensible.

License

MIT License - Feel free to use and modify

Notes

  • Some installations may require admin/sudo privileges
  • System restart may be needed after installation
  • Docker on Linux requires logout/login for group changes
  • Configuration is saved to ~/.dev-setup-config.json

Save time on your next setup! ⚡

About

A simple, cross-platform automation tool to quickly set up your development environment after a fresh OS install or reset.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published