From 8b929acfb497547e8de62b55f4ef943bf81d1505 Mon Sep 17 00:00:00 2001 From: Rasmus Lauritsen Date: Sun, 15 Dec 2024 13:58:30 +0100 Subject: [PATCH] Minor tweaks --- setup-ubuntu.sh | 103 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 84 insertions(+), 19 deletions(-) mode change 100644 => 100755 setup-ubuntu.sh diff --git a/setup-ubuntu.sh b/setup-ubuntu.sh old mode 100644 new mode 100755 index 2202fbb..3827824 --- a/setup-ubuntu.sh +++ b/setup-ubuntu.sh @@ -1,10 +1,20 @@ +#!/bin/bash +set -e # Fail on errors + # Pre-req: Use OS with apt - like Ubuntu, POP_OS!, etc. + +# Update apt and all existing applications +# Install Nala - enables multithreading when installing apt packages +echo "🚧 APT update/upgrade + installing nala..." sudo apt-get update > /dev/null && sudo apt-get upgrade -y > /dev/null -sudo apt-get update && sudo apt-get install -y nala # Using Nala on top af APT to have multi-threading etc. +sudo apt-get update > /dev/null && sudo apt-get install -y nala > /dev/null sudo nala install -y apt-transport-https ca-certificates cifs-utils cksfv curl curl git gnupg golang-go jq mc nano pipx python3 sshpass unrar unzip wget > /dev/null +# Change work-dir to /tmp/ +cd /tmp/ + # Install apps from APT -echo "Installing a few more applications from apt/nala..." +echo "ℹ️ Installing a few more applications from apt/nala..." software=( doublecmd-common # Double Commander mc # Midnight Commander @@ -18,10 +28,11 @@ software=( sudo nala install -y "${software[@]}" > /dev/null # Install apps from Snap -echo "Installing applications from Snap..." +echo "ℹ️ Installing applications from Snap..." sudo snap install slack # Slack # Flatpak and flathub repo +echo "ℹ️ Installing applications from Flathub..." sudo nala install -y flatpak gnome-software-plugin-flatpak > /dev/null sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo @@ -37,13 +48,12 @@ flatpakapps=( org.remmina.Remmina # SSH client org.videolan.VLC # VLC video player ) - # Run flatpak install for all apps in the array sudo flatpak install -y "${flatpakapps[@]}" - # Ansible -pipx install --include-deps ansible +echo "ℹ️ Installing Ansbile..." +pipx install --include-deps ansible > /dev/null pipx ensurepath pipx completions eval "$(register-python-argcomplete pipx)" @@ -53,7 +63,8 @@ eval "$(register-python-argcomplete pipx)" ##################################### ### Docker ### -for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done +echo "ℹ️ Installing Docker..." +for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg > /dev/null; done # Add Docker's official GPG key: sudo nala update > /dev/null sudo nala install -y ca-certificates curl > /dev/null @@ -65,31 +76,35 @@ echo \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo nala update > /dev/null -sudo nala install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin +sudo nala install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin > /dev/null sudo groupadd --force docker sudo usermod -aG docker $USER ### Helm ### +echo "ℹ️ Installing Helm..." sudo install -m 0755 -d /etc/apt/keyrings sudo nala install -y apt-transport-https wget gpg > /dev/null wget -qO- https://baltocdn.com/helm/signing.asc | gpg --dearmor > packages.helm.gpg sudo install -D -o root -g root -m 644 packages.helm.gpg /etc/apt/keyrings/packages.helm.gpg echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/packages.helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm.list > /dev/null rm -f packages.helm.gpg -sudo nala update -sudo nala install -y helm +sudo nala update > /dev/null +sudo nala install -y helm > /dev/null ### Minikube ### -curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 +echo "ℹ️ Installing Minikube..." +curl -sLO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64 ### Kubectl ### +echo "ℹ️ Installing Kubectl..." curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | sudo gpg --batch --yes --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list sudo nala update > /dev/null sudo nala install -y kubectl ### KubeSeal ### +echo "ℹ️ Installing Kubeseal..." # Fetch the latest sealed-secrets version using GitHub API KUBESEAL_VERSION=$(curl -s https://api.github.com/repos/bitnami-labs/sealed-secrets/tags | jq -r '.[0].name' | cut -c 2-) @@ -99,17 +114,20 @@ if [ -z "$KUBESEAL_VERSION" ]; then exit 1 fi -wget "https://github.com/bitnami-labs/sealed-secrets/releases/download/v${KUBESEAL_VERSION}/kubeseal-${KUBESEAL_VERSION}-linux-amd64.tar.gz" -tar -xvzf kubeseal-${KUBESEAL_VERSION}-linux-amd64.tar.gz kubeseal +curl -sOL "https://github.com/bitnami-labs/sealed-secrets/releases/download/v${KUBESEAL_VERSION}/kubeseal-${KUBESEAL_VERSION}-linux-amd64.tar.gz" +tar -xvzf kubeseal-${KUBESEAL_VERSION}-linux-amd64.tar.gz kubeseal > /dev/null sudo install -m 755 kubeseal /usr/local/bin/kubeseal && rm kubeseal* + # Lazygit - TUI for Git +echo "ℹ️ Installing Lazygit..." LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep -Po '"tag_name": "v\K[^"]*') curl -sLo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz" > /dev/null tar xf lazygit.tar.gz lazygit sudo install lazygit /usr/local/bin # Lazydocker - TUI for Docker +echo "ℹ️ Installing Lazydocker..." LAZYDOCKER_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazydocker/releases/latest" | grep -Po '"tag_name": "v\K[^"]*') curl -sLo lazydocker.tar.gz "https://github.com/jesseduffield/lazydocker/releases/latest/download/lazydocker_${LAZYDOCKER_VERSION}_Linux_x86_64.tar.gz" > /dev/null tar -xf lazydocker.tar.gz lazydocker @@ -117,17 +135,21 @@ sudo install lazydocker /usr/local/bin rm lazydocker.tar.gz lazydocker # K9s - TUI for Kubernetes +echo "ℹ️ Installing K9s..." K9S_VERSION=$(curl -s "https://api.github.com/repos/derailed/k9s/releases/latest" | grep -Po '"tag_name": "v\K[^"]*') curl -sLo k9s_linux_amd64.deb "https://github.com/derailed/k9s/releases/download/v${K9S_VERSION}/k9s_linux_amd64.deb" > /dev/null sudo apt-get install -y ./k9s_linux_amd64.deb > /dev/null rm k9s_linux_amd64.deb # Google Chrome -wget -O /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb -sudo apt-get install -y /tmp/google-chrome-stable_current_amd64.deb -rm /tmp/google-chrome-stable_current_amd64.deb +echo "ℹ️ Installing Google Chrome..." +wget -q https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb +sudo dpkg -i google-chrome-stable_current_amd64.deb > /dev/null +sudo apt-get install -f > /dev/null +rm google-chrome-stable_current_amd64.deb # Teamviewer +echo "ℹ️ Installing Teamviewer..." sudo install -m 0755 -d /etc/apt/keyrings sudo apt-get install -y apt-transport-https wget gpg > /dev/null wget -qO- https://download.teamviewer.com/download/linux/signature/TeamViewer2017.asc | gpg --dearmor > packages.teamviewer.gpg @@ -138,12 +160,14 @@ sudo apt-get update > /dev/null sudo apt-get install -y teamviewer > /dev/null # Unrarall -wget -O unrarall https://raw.githubusercontent.com/arfoll/unrarall/master/unrarall +echo "ℹ️ Installing Unrarall..." +wget -qO unrarall https://raw.githubusercontent.com/arfoll/unrarall/master/unrarall sudo chmod 0777 unrarall sudo chown root:root unrarall sudo mv unrarall /usr/bin/unrarall # VSCode +echo "ℹ️ Installing VSCode..." sudo install -m 0755 -d /etc/apt/keyrings sudo apt-get install -y apt-transport-https wget gpg > /dev/null wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg @@ -154,7 +178,7 @@ sudo apt-get update > /dev/null sudo apt-get install -y code > /dev/null # Install VSCode extensions -echo "Install more VSCode extensions.." +echo "ℹ️ Installing more VSCode extensions.." code --install-extension esbenp.prettier-vscode > /dev/null code --install-extension golang.go > /dev/null code --install-extension ms-azuretools.vscode-docker > /dev/null @@ -179,7 +203,48 @@ code --install-extension redhat.vscode-yaml > /dev/null code --install-extension vscjava.vscode-java-debug > /dev/null # OpenRA - Red Alert Engine +echo "ℹ️ Installing OpenRA..." sudo snap install openra # CrossFTP -wget -O /tmp/crossftp.deb https://www.crossftp.com/crossftp_1.99.9.deb && sudo apt-get install -y /tmp/crossftp.deb && rm /tmp/crossftp.deb \ No newline at end of file +echo "ℹ️ Installing Crossftp..." +wget -q https://www.crossftp.com/crossftp_1.99.9.deb +sudo dpkg -i crossftp_1.99.9.deb > /dev/null +sudo apt-get install -f > /dev/null +rm crossftp_1.99.9.deb + +############################ +# # +# Configure look of Ubuntu # +# # +############################ +echo "🎨 Configure Ubuntu look and feel..." +# Color theme +gsettings set org.gnome.desktop.interface clock-format '24h' +gsettings set org.gnome.desktop.interface clock-show-date true +gsettings set org.gnome.desktop.interface clock-show-seconds false +gsettings set org.gnome.desktop.interface clock-show-weekday true +gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' +gsettings set org.gnome.desktop.interface cursor-theme 'Adwaita' +gsettings set org.gnome.desktop.interface enable-animations true +gsettings set org.gnome.desktop.interface enable-hot-corners false +gsettings set org.gnome.desktop.interface gtk-theme 'Yaru-blue' +gsettings set org.gnome.desktop.interface icon-theme 'Yaru-blue' +gsettings set org.gnome.desktop.interface show-battery-percentage true +gsettings set org.gnome.desktop.interface text-scaling-factor 1.0 +gsettings set org.gnome.desktop.interface toolbar-detachable false +gsettings set org.gnome.desktop.interface toolbar-icons-size 'large' +gsettings set org.gnome.desktop.interface toolbar-style 'both-horiz' +gsettings set org.gnome.desktop.interface toolkit-accessibility false + +# Move dock to right side of screen +gsettings set org.gnome.shell.extensions.dash-to-dock dock-position "RIGHT" + +# Activate night light +gsettings set org.gnome.settings-daemon.plugins.color night-light-enabled true +gsettings set org.gnome.settings-daemon.plugins.color night-light-schedule-automatic true +gsettings set org.gnome.settings-daemon.plugins.color night-light-temperature 4000 + +# All done +cd # change directory to homedir +echo "🎉 Setup of Ubuntu is done! 🚀" \ No newline at end of file