Skip to content

Instantly share code, notes, and snippets.

@kulbirsaini
Last active December 13, 2025 05:02
Show Gist options
  • Select an option

  • Save kulbirsaini/49d6748e07fbcb4bb72d3b321ef87021 to your computer and use it in GitHub Desktop.

Select an option

Save kulbirsaini/49d6748e07fbcb4bb72d3b321ef87021 to your computer and use it in GitHub Desktop.
# Maintined at https://gist.github.com/kulbirsaini/d8cfc88f3b44711d73e427526219d54a
#
# Limit journal size https://askubuntu.com/a/1012913/262039
#
# Disable MySQL bin log https://dba.stackexchange.com/a/120693/233878
#
# Perform base system upgrade
sudo apt update
sudo apt upgrade -y
# Install basic packages and libs
sudo apt install -y vim git ssh bash mysql-client imagemagick screen curl wget lynx openssl libdbi-perl libdbi-perl libdbd-mysql-perl zlib1g-dev libu2f-udev libbz2-dev lzma liblzma-dev python3-tk libmysqlclient-dev libpq-dev tree net-tools openjdk-21-jre tk-dev golang-go direnv libncurses5-dev libffi-dev libreadline-dev libsqlite3-dev bison
# Install docker and docker compose
sudo apt install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) \
signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
noble stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt remove docker docker-engine docker.io containerd runc
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable docker
sudo systemctl start docker
sudo usermod -aG docker $USER
newgrp docker
sudo curl -L https://raw.githubusercontent.com/docker/cli/master/contrib/completion/bash/docker -o /usr/share/bash-completion/completions/docker
# Install kubectl
curl -LO "https://dl.k8s.io/release/$(curl -Ls https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
# Bash completion for kubectl
sudo apt install -y bash-completion
kubectl completion bash | sudo tee /etc/bash_completion.d/kubectl > /dev/null
source ~/.bashrc
# Install gvm
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
# pyenv
curl -fsSL https://pyenv.run | bash
# nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
# pnpm
curl -fsSL https://get.pnpm.io/install.sh | sh -
# rvm
gpg --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
\curl -sSL https://get.rvm.io | bash
# Helm
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
rm -f get_helm.sh
# eksctl
# for ARM systems, set ARCH to: `arm64`, `armv6` or `armv7`
ARCH=amd64
PLATFORM=$(uname -s)_$ARCH
curl -sLO "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_$PLATFORM.tar.gz"
# (Optional) Verify checksum
curl -sL "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_checksums.txt" | grep $PLATFORM | sha256sum --check
tar -xzf eksctl_$PLATFORM.tar.gz -C /tmp && rm eksctl_$PLATFORM.tar.gz
sudo install -m 0755 /tmp/eksctl /usr/local/bin && rm /tmp/eksctl
# uv On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh
# Basic git settings
git config --global core.editor "vim"
git config --global init.defaultBranch main
git config --global user.name "Kulbir Saini"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment