Skip to content

Latest commit

Β 

History

History
141 lines (101 loc) Β· 3.03 KB

File metadata and controls

141 lines (101 loc) Β· 3.03 KB

πŸš€ Linux Dev Setup Automation

Easily bootstrap your Ubuntu environment with a beautiful interactive menu and script automation. Install your favorite tools, set global aliases, and even uninstall them later β€” all with a single command.


πŸ“¦ Features

  • βœ… Install apps with an interactive checklist menu
  • 🌍 Option to make the setup globally accessible via the setup command
  • 🧼 Uninstall any installed app from a similar interactive menu
  • πŸ› οΈ Scripts are modular and easy to extend (apps/ folder)
  • πŸ§™β€β™‚οΈ Custom aliases are linked automatically when using ZSH
  • 🧾 All actions are logged in install.log

βš™οΈ Usage

1. Clone this repo

git clone https://github.com/michelpl/linux-dev-environment.git
cd linux-dev-environment/ubuntu
chmod +x setup.sh

2. Run the setup

./setup.sh

img.png

You'll see a terminal menu where you can:

  • Select which apps to install (e.g., Chrome, VSCode, Postman, etc.)
  • Enable the Global option to run this script from anywhere as setup
  • Choose to enter the Uninstall menu

3. (Optional) Run from anywhere

If you selected the Global option, you can now use:

setup        # opens the install menu
setup uninstall  # opens the uninstall menu

πŸ” Uninstalling Apps

You can uninstall apps at any time:

setup uninstall

img_1.png

You’ll be presented with a checklist of all installed apps (with uninstall scripts) and the option to remove the global setup command.


πŸ—‚οΈ Project Structure

linux-dev-environment/Ubuntu
β”œβ”€β”€ setup.sh               # Main entry point
β”œβ”€β”€ apps/
β”‚   β”œβ”€β”€ chrome.sh          # App install scripts
β”‚   β”œβ”€β”€ vscode.sh
β”‚   └── uninstall/
β”‚       β”œβ”€β”€ chrome-uninstall.sh
β”‚       └── vscode-uninstall.sh
β”œβ”€β”€ configs/
β”‚   └── aliases.zsh        # Custom aliases
└── install.log            # Logs of all actions

✍️ Adding a New App or Contributing

Want to add a new app or improve the setup? Contributions are welcome!

  1. Create an install script inside apps/:
    apps/mytool.sh
  2. (Optional) Create a matching uninstall script:
    apps/uninstall/mytool-uninstall.sh
  3. Your app will automatically appear in the setup and uninstall menus.
  4. Open a Pull Request with your changes!

See CONTRIBUTING.md for more details.


πŸš€ Usage

  • To install an app:
    ./setup.sh i <appname>
    # or, if globally installed:
    setup i <appname>
  • To uninstall an app:
    ./setup.sh u <appname>
    # or, if globally installed:
    setup u <appname>
  • To use the interactive menu:
    ./setup.sh
    # or
    setup

πŸ§‘β€πŸ’» Requirements

  • Ubuntu (tested on 24.04+)
  • whiptail (sudo apt install whiptail)
  • Internet connection
  • Permissions to install packages (sudo)

πŸ“– License

MIT License Β©

Made for devs who hate setting things up manually.