Skip to content

Instantly share code, notes, and snippets.

@vadim-kovalyov
Last active August 18, 2023 03:59
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save vadim-kovalyov/879f53af4e229f101739a0a17275233a to your computer and use it in GitHub Desktop.
Save vadim-kovalyov/879f53af4e229f101739a0a17275233a to your computer and use it in GitHub Desktop.
Dev box setup for Ubuntu 20.04
sudo apt update
sudo apt install -y build-essential curl make git vim hub libssl-dev graphviz jq cmake clang pkg-config p7zip terminator gnome-tweaks fonts-firacode protobuf-compiler
# intune
sudo apt install libpam-pwquality
sudo nano /etc/pam.d/common-password
# password requisite pam_pwquality.so retry=3 dcredit=-1 ocredit=-1 ucredit=-1 lcredit=-1 minlen=12
curl -sSl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt update
sudo apt install intune-portal
# install oh-my-zsh
sudo apt install -y zsh
chsh -s $(which zsh)
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
# rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
# extra tools for rust
apt-get install -y lcov plantuml
cargo install cargo-tarpaulin --version '^0.20'
cargo install cargo-tree
cargo install cargo-watch
cargo install cargo-criterion
cargo install sccache
cargo install bindgen
cargo install cbindgen
echo '[build]' >> ~/.cargo/config.toml
echo 'rustc-wrapper = "'/home/$USER/.cargo/bin/sccache'"' >> ~/.cargo/config.toml
# golang
sudo snap install --classic go
echo 'export GOPATH=$HOME/go' >> ~/.zshrc
echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> ~/.zshrc
# docker
sudo apt-get remove docker docker-engine docker.io
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
xenial \
stable"
sudo apt-get update
sudo apt-get install -y docker-ce
sudo usermod -aG docker $USER
# java
sudo apt install -y openjdk-14-jdk
# node.js
curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo npm install -g yo
# dotnet
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install -y apt-transport-https
sudo apt-get update
sudo apt-get install -y dotnet-sdk-3.1
# powershell
sudo snap install powershell --classic
# VS Code
sudo snap install --classic code
code --install-extension shan.code-settings-sync
jq '. + { "sync.gist": "cb398ab6b6a97e18213e0cb94400a97e" }' ~/.config/Code/User/settings.json > ~/.config/vscsettings.tmp && mv ~/.config/vscsettings.tmp ~/.config/Code/User/settings.json
# .zshrc
echo alias up=\'cd ..\' >> ~/.zshrc
echo alias up2=\'cd ../..\' >> ~/.zshrc
echo alias up3=\'cd ../../..\' >> ~/.zshrc
echo alias up4=\'cd ../../../..\' >> ~/.zshrc
echo alias up5=\'cd ../../../../..\' >> ~/.zshrc
echo alias please=\'sudo\' >> ~/.zshrc
echo alias gitl=\'git log --graph --oneline --all\' >> ~/.zshrc
echo alias xclip=\'xclip -selection c\' >> ~/.zshrc
# keybase + pass + docker cred manager
curl --remote-name https://prerelease.keybase.io/keybase_amd64.deb
sudo apt install -y ./keybase_amd64.deb
sudo apt install -y pass
wget https://github.com/docker/docker-credential-helpers/releases/download/v0.6.3/docker-credential-pass-v0.6.3-amd64.tar.gz
tar -xvf docker-credential-pass-v0.6.3-amd64.tar.gz
sudo mv docker-credential-pass /usr/bin/
sudo chmod +x /usr/bin/docker-credential-pass
jq '. + { "credsStore": "pass" }' ~/.docker/config.json > ~/.docker/config.tmp && mv ~/.docker/config.tmp ~/.docker/config.json
# then http://blog.alltherunning.com/2018/02/12/pass-keybase-multi-gpg.html to restore PGP keys.
# git config
git config --global user.email "<email>"
git config --global user.name "Vadim Kovalyov"
git config --global user.signingKey <keyid>
git config --global commit.gpgSign true
# kubectl
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl
# kind
go install sigs.k8s.io/kind@v0.14.0
kind create cluster
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment