Skip to content

Instantly share code, notes, and snippets.

@ackkerman
Last active January 3, 2026 09:16
Show Gist options
  • Select an option

  • Save ackkerman/90d3d7acf82b18354ea688b7b1dae67f to your computer and use it in GitHub Desktop.

Select an option

Save ackkerman/90d3d7acf82b18354ea688b7b1dae67f to your computer and use it in GitHub Desktop.
python, nodejs, go
#!/usr/bin/env bash
set -euo pipefail
echo "πŸš€ Start Ubuntu dev environment setup (pyenv + nvm)"
#######################################
# dev essentials
#######################################
sudo apt update
sudo apt upgrade -y
sudo apt install -y \
build-essential \
curl \
git \
wget \
unzip \
ca-certificates \
gnupg \
lsb-release \
make \
llvm \
xz-utils \
tk-dev \
libssl-dev \
zlib1g-dev \
libbz2-dev \
libreadline-dev \
libsqlite3-dev \
libncursesw5-dev \
libffi-dev \
liblzma-dev
#######################################
# pyenv
#######################################
echo "🐍 Installing pyenv"
if [ ! -d "$HOME/.pyenv" ]; then
curl https://pyenv.run | bash
fi
# shell setup
if ! grep -q 'pyenv init' ~/.bashrc; then
cat << 'EOF' >> ~/.bashrc
# pyenv
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
EOF
fi
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
#######################################
# python install
#######################################
PYTHON_VERSION="3.12.2"
if ! pyenv versions | grep -q "$PYTHON_VERSION"; then
pyenv install "$PYTHON_VERSION"
fi
pyenv global "$PYTHON_VERSION"
python -m pip install --upgrade pip setuptools wheel
#######################################
# playwright (python)
#######################################
echo "🎭 Installing Playwright (Python)"
pip install playwright
python -m playwright install --with-deps
#######################################
# nvm
#######################################
echo "🟒 Installing nvm"
if [ ! -d "$HOME/.nvm" ]; then
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
fi
# shell setup
export NVM_DIR="$HOME/.nvm"
# shellcheck disable=SC1090
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
#######################################
# node install
#######################################
NODE_VERSION="20"
nvm install "$NODE_VERSION"
nvm use "$NODE_VERSION"
nvm alias default "$NODE_VERSION"
#######################################
# pnpm
#######################################
echo "πŸ“¦ Installing pnpm"
corepack enable
corepack prepare pnpm@latest --activate
#######################################
# verification
#######################################
echo ""
echo "βœ… Installation finished"
echo "Versions:"
python --version
pip --version
node --version
npm --version
pnpm --version
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment