Skip to content

Instantly share code, notes, and snippets.

@ntorga
Last active November 24, 2021 18:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ntorga/cc2dcdab857a4a8fa09a8093850babd4 to your computer and use it in GitHub Desktop.
Save ntorga/cc2dcdab857a4a8fa09a8093850babd4 to your computer and use it in GitHub Desktop.
#!/bin/bash
#
# The script will perform most of the steps, however, you must edit a few settings manually AFTER running the script:
#
# 1) Enable "Large Text" on Accessibility menu;
#
# 2) Settings => Keyboard => App Shortcuts => Add "/usr/bin/flameshot gui" => Print Screen => Keep Flameshot.
#
# 3) Configure AutoSSH for proxies.
#
# 4) Configure hourly backup.
#
# 5) Install NVIDIA drivers.
#
# 6) AutoKey:
# a) Edit -> Preferences -> Enable "Automatically start AutoKey at login";
# b) Select both "Backslash" and "Pipe" and click on Save;
#
# update system
sudo apt update && sudo apt upgrade -y
# remove default apps and install better ones
cd ~/
sudo apt remove -y pidgin* thunderbird* ristretto* xfburn remmina
sudo apt install -y vlc shotwell ubuntu-restricted-extras
sudo apt install -y byobu exfat-fuse exfat-utils
# install pulseaudio-bt
sudo apt install -y pulseaudio-module-bluetooth bluez-tools
sudo systemctl enable bluetooth
# install basic softwares
sudo apt install -y flameshot default-jre kazam mtr vim curl git whois htop
sudo apt install -y filezilla autossh sshpass telnet traceroute
snaps=( "opera" "spotify" "zoom-client" "postman" "code --classic" )
for snap in ${snaps[*]}; do
sudo snap install "${snap}"
done
extensions=( "ms-kubernetes-tools.vscode-kubernetes-tools" "hashicorp.terraform" "foxundermoon.shell-format" "timonwong.shellcheck" "ms-azuretools.vscode-docker" "dbaeumer.vscode-eslint" "bmewburn.vscode-intelephense-client" "hbenl.vscode-test-explorer" "recca0120.vscode-phpunit" "ms-python.python" "mubaidr.vuejs-extension-pack" "github.github-vscode-theme" "github.vscode-pull-request-github" )
for ext in ${extensions[*]}; do
code --install-extension "${ext}"
done
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb -O chrome.deb
sudo dpkg -i chrome.deb
sudo apt-get install -y -f
rm -f chrome.deb
sudo apt install -y \
apt-transport-https \
ca-certificates \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
sudo groupadd docker
sudo usermod -aG docker ${USER}
sudo chmod 666 /var/run/docker.sock
# disable ipv6 and raise inotify limits
echo "net.ipv6.conf.all.disable_ipv6 = 1" | sudo tee /etc/sysctl.conf
echo "net.ipv6.conf.default.disable_ipv6 = 1" | sudo tee /etc/sysctl.conf
echo "net.ipv6.conf.lo.disable_ipv6 = 1" | sudo tee /etc/sysctl.conf
echo "fs.inotify.max_user_watches=524288" | sudo tee /etc/sysctl.conf
sudo sysctl -p
# configure git
git config --global user.name "ntorga"
git config --global user.email northontorga@gmail.com
# install aws cli, kubectl, terraform(-ls), waypoint, helm and aws-iam-authenticator
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
rm -f awscliv2.zip
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
rm -f kubectl
wget https://releases.hashicorp.com/terraform/0.14.8/terraform_0.14.8_linux_amd64.zip -O terraform.zip
unzip terraform.zip && rm -f terraform.zip
sudo install -o root -g root -m 0755 terraform /usr/local/bin/terraform
rm -f terraform
wget https://releases.hashicorp.com/terraform-ls/0.17.1/terraform-ls_0.17.1_linux_amd64.zip -O terraform-ls.zip
unzip terraform-ls.zip && rm -f terraform-ls.zip
sudo install -o root -g root -m 0755 terraform-ls /usr/local/bin/terraform-ls
rm -f terraform-ls
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
curl -o aws-iam-authenticator https://amazon-eks.s3.us-west-2.amazonaws.com/1.19.6/2021-01-05/bin/linux/amd64/aws-iam-authenticator
sudo install -o root -g root -m 0755 aws-iam-authenticator /usr/local/bin/aws-iam-authenticator
rm -f aws-iam-authenticator
curl -sS https://webinstall.dev/k9s | bash
sudo apt install -y python3-pip autokey-gtk
sudo apt install -y gnome-tweaks gnome-shell-extensions chrome-gnome-shell
#
# Make sure you copied from previous install the ~/.config/autokey, .ssh, .aws and .bin directories.
# Before pasting ~/.config/autokey from previous install, remove the current one so you don't end up
# with the defaults from AutoKey enabled which are useless.
#
wget "https://github.com/brunelli/gnome-shell-extension-installer/raw/master/gnome-shell-extension-installer" -O gnome-shell-extension-installer.sh
bash gnome-shell-extension-installer.sh 1160 # Dash To Panel
bash gnome-shell-extension-installer.sh 906 # Sound Input & Output Device Chooser
bash gnome-shell-extension-installer.sh 1401 # Bluetooth Quick Connect
bash gnome-shell-extension-installer.sh 1262 # Bing Wallpaper
bash gnome-shell-extension-installer.sh 3628 # ArcMenu
rm -f gnome-shell-extension-installer.sh
gsettings set org.gnome.shell.extensions.dash-to-dock dock-position TOP
gsettings set org.gnome.shell.extensions.dash-to-dock extend-height false
#
# After reboot, enable these extensions and configure them.
#
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment