web-dev-setup.sh 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. #!/bin/bash
  2. set -e
  3. echo "======================================"
  4. echo "🌐 Web Development Setup for Ubuntu 22.04"
  5. echo "======================================"
  6. # Update and upgrade
  7. echo "🔄 Updating system..."
  8. sudo apt update && sudo apt upgrade -y
  9. # Install essential tools
  10. echo "🛠️ Installing base developer tools..."
  11. sudo apt install -y build-essential software-properties-common \
  12. curl wget git unzip zip gnupg ca-certificates lsb-release
  13. # Install Python and pip
  14. echo "🐍 Installing Python3 and pip..."
  15. sudo apt install -y python3 python3-pip python3-venv
  16. # Remove Older Node.js packages to avoid conflicts
  17. echo "🧼 Removing older Node.js and conflicting dev packages..."
  18. sudo apt remove -y nodejs libnode-dev
  19. sudo apt autoremove -y
  20. sudo apt clean
  21. # Install Node.js (LTS) and npm
  22. echo "🟢 Installing Node.js LTS and npm..."
  23. curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
  24. sudo apt install -y nodejs
  25. # Install global npm packages
  26. echo "📦 Installing global npm packages..."
  27. sudo npm install -g typescript nodemon vite create-react-app eslint prettier yarn
  28. # Install Docker
  29. read -p "Do you want to install Docker and Docker Compose? (y/n): " install_docker
  30. if [[ "$install_docker" == "y" ]]; then
  31. echo "🐳 Installing Docker..."
  32. sudo apt install -y docker.io docker-compose
  33. sudo systemctl enable docker
  34. sudo usermod -aG docker $USER
  35. echo "✅ Docker installed. You may need to logout and login again for group changes."
  36. fi
  37. # Install Git
  38. echo "🌿 Installing Git..."
  39. sudo apt install -y git
  40. # Install VS Code
  41. read -p "Do you want to install Visual Studio Code? (y/n): " install_vscode
  42. if [[ "$install_vscode" == "y" ]]; then
  43. echo "🧠 Installing VS Code..."
  44. wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
  45. sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/
  46. sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
  47. sudo apt update
  48. sudo apt install -y code
  49. rm -f packages.microsoft.gpg
  50. fi
  51. # Optional: MongoDB
  52. read -p "Do you want to install MongoDB? (y/n): " install_mongo
  53. if [[ "$install_mongo" == "y" ]]; then
  54. echo "🍃 Installing MongoDB..."
  55. wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
  56. echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | \
  57. sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
  58. sudo apt update
  59. sudo apt install -y mongodb-org
  60. sudo systemctl start mongod
  61. sudo systemctl enable mongod
  62. fi
  63. # Optional: PostgreSQL
  64. read -p "Do you want to install PostgreSQL? (y/n): " install_postgres
  65. if [[ "$install_postgres" == "y" ]]; then
  66. echo "🐘 Installing PostgreSQL..."
  67. sudo apt install -y postgresql postgresql-contrib
  68. sudo systemctl start postgresql
  69. sudo systemctl enable postgresql
  70. fi
  71. # Terminal Improvements (Optional)
  72. echo "✨ Installing terminal improvements (Zsh, Oh-My-Zsh)..."
  73. sudo apt install -y zsh
  74. chsh -s $(which zsh)
  75. sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
  76. # Clean up
  77. echo "🧹 Cleaning up..."
  78. sudo apt autoremove -y
  79. sudo apt clean
  80. echo "✅ Web development environment setup is complete!"