Minor tweaks
This commit is contained in:
103
setup-ubuntu.sh
Normal file → Executable file
103
setup-ubuntu.sh
Normal file → Executable file
@@ -1,10 +1,20 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e # Fail on errors
|
||||||
|
|
||||||
# Pre-req: Use OS with apt - like Ubuntu, POP_OS!, etc.
|
# 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 > /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
|
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
|
# Install apps from APT
|
||||||
echo "Installing a few more applications from apt/nala..."
|
echo "ℹ️ Installing a few more applications from apt/nala..."
|
||||||
software=(
|
software=(
|
||||||
doublecmd-common # Double Commander
|
doublecmd-common # Double Commander
|
||||||
mc # Midnight Commander
|
mc # Midnight Commander
|
||||||
@@ -18,10 +28,11 @@ software=(
|
|||||||
sudo nala install -y "${software[@]}" > /dev/null
|
sudo nala install -y "${software[@]}" > /dev/null
|
||||||
|
|
||||||
# Install apps from Snap
|
# Install apps from Snap
|
||||||
echo "Installing applications from Snap..."
|
echo "ℹ️ Installing applications from Snap..."
|
||||||
sudo snap install slack # Slack
|
sudo snap install slack # Slack
|
||||||
|
|
||||||
# Flatpak and flathub repo
|
# Flatpak and flathub repo
|
||||||
|
echo "ℹ️ Installing applications from Flathub..."
|
||||||
sudo nala install -y flatpak gnome-software-plugin-flatpak > /dev/null
|
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
|
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.remmina.Remmina # SSH client
|
||||||
org.videolan.VLC # VLC video player
|
org.videolan.VLC # VLC video player
|
||||||
)
|
)
|
||||||
|
|
||||||
# Run flatpak install for all apps in the array
|
# Run flatpak install for all apps in the array
|
||||||
sudo flatpak install -y "${flatpakapps[@]}"
|
sudo flatpak install -y "${flatpakapps[@]}"
|
||||||
|
|
||||||
|
|
||||||
# Ansible
|
# Ansible
|
||||||
pipx install --include-deps ansible
|
echo "ℹ️ Installing Ansbile..."
|
||||||
|
pipx install --include-deps ansible > /dev/null
|
||||||
pipx ensurepath
|
pipx ensurepath
|
||||||
pipx completions
|
pipx completions
|
||||||
eval "$(register-python-argcomplete pipx)"
|
eval "$(register-python-argcomplete pipx)"
|
||||||
@@ -53,7 +63,8 @@ eval "$(register-python-argcomplete pipx)"
|
|||||||
#####################################
|
#####################################
|
||||||
|
|
||||||
### Docker ###
|
### 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:
|
# Add Docker's official GPG key:
|
||||||
sudo nala update > /dev/null
|
sudo nala update > /dev/null
|
||||||
sudo nala install -y ca-certificates curl > /dev/null
|
sudo nala install -y ca-certificates curl > /dev/null
|
||||||
@@ -65,31 +76,35 @@ echo \
|
|||||||
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
|
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
|
||||||
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||||
sudo nala update > /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 groupadd --force docker
|
||||||
sudo usermod -aG docker $USER
|
sudo usermod -aG docker $USER
|
||||||
|
|
||||||
### Helm ###
|
### Helm ###
|
||||||
|
echo "ℹ️ Installing Helm..."
|
||||||
sudo install -m 0755 -d /etc/apt/keyrings
|
sudo install -m 0755 -d /etc/apt/keyrings
|
||||||
sudo nala install -y apt-transport-https wget gpg > /dev/null
|
sudo nala install -y apt-transport-https wget gpg > /dev/null
|
||||||
wget -qO- https://baltocdn.com/helm/signing.asc | gpg --dearmor > packages.helm.gpg
|
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
|
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
|
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
|
rm -f packages.helm.gpg
|
||||||
sudo nala update
|
sudo nala update > /dev/null
|
||||||
sudo nala install -y helm
|
sudo nala install -y helm > /dev/null
|
||||||
|
|
||||||
### Minikube ###
|
### 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
|
sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64
|
||||||
|
|
||||||
### Kubectl ###
|
### 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
|
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
|
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 update > /dev/null
|
||||||
sudo nala install -y kubectl
|
sudo nala install -y kubectl
|
||||||
|
|
||||||
### KubeSeal ###
|
### KubeSeal ###
|
||||||
|
echo "ℹ️ Installing Kubeseal..."
|
||||||
# Fetch the latest sealed-secrets version using GitHub API
|
# 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-)
|
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
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
wget "https://github.com/bitnami-labs/sealed-secrets/releases/download/v${KUBESEAL_VERSION}/kubeseal-${KUBESEAL_VERSION}-linux-amd64.tar.gz"
|
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
|
tar -xvzf kubeseal-${KUBESEAL_VERSION}-linux-amd64.tar.gz kubeseal > /dev/null
|
||||||
sudo install -m 755 kubeseal /usr/local/bin/kubeseal && rm kubeseal*
|
sudo install -m 755 kubeseal /usr/local/bin/kubeseal && rm kubeseal*
|
||||||
|
|
||||||
|
|
||||||
# Lazygit - TUI for Git
|
# 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[^"]*')
|
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
|
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
|
tar xf lazygit.tar.gz lazygit
|
||||||
sudo install lazygit /usr/local/bin
|
sudo install lazygit /usr/local/bin
|
||||||
|
|
||||||
# Lazydocker - TUI for Docker
|
# 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[^"]*')
|
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
|
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
|
tar -xf lazydocker.tar.gz lazydocker
|
||||||
@@ -117,17 +135,21 @@ sudo install lazydocker /usr/local/bin
|
|||||||
rm lazydocker.tar.gz lazydocker
|
rm lazydocker.tar.gz lazydocker
|
||||||
|
|
||||||
# K9s - TUI for Kubernetes
|
# 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[^"]*')
|
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
|
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
|
sudo apt-get install -y ./k9s_linux_amd64.deb > /dev/null
|
||||||
rm k9s_linux_amd64.deb
|
rm k9s_linux_amd64.deb
|
||||||
|
|
||||||
# Google Chrome
|
# Google Chrome
|
||||||
wget -O /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
|
echo "ℹ️ Installing Google Chrome..."
|
||||||
sudo apt-get install -y /tmp/google-chrome-stable_current_amd64.deb
|
wget -q https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
|
||||||
rm /tmp/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
|
# Teamviewer
|
||||||
|
echo "ℹ️ Installing Teamviewer..."
|
||||||
sudo install -m 0755 -d /etc/apt/keyrings
|
sudo install -m 0755 -d /etc/apt/keyrings
|
||||||
sudo apt-get install -y apt-transport-https wget gpg > /dev/null
|
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
|
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
|
sudo apt-get install -y teamviewer > /dev/null
|
||||||
|
|
||||||
# Unrarall
|
# 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 chmod 0777 unrarall
|
||||||
sudo chown root:root unrarall
|
sudo chown root:root unrarall
|
||||||
sudo mv unrarall /usr/bin/unrarall
|
sudo mv unrarall /usr/bin/unrarall
|
||||||
|
|
||||||
# VSCode
|
# VSCode
|
||||||
|
echo "ℹ️ Installing VSCode..."
|
||||||
sudo install -m 0755 -d /etc/apt/keyrings
|
sudo install -m 0755 -d /etc/apt/keyrings
|
||||||
sudo apt-get install -y apt-transport-https wget gpg > /dev/null
|
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
|
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
|
sudo apt-get install -y code > /dev/null
|
||||||
|
|
||||||
# Install VSCode extensions
|
# Install VSCode extensions
|
||||||
echo "Install more VSCode extensions.."
|
echo "ℹ️ Installing more VSCode extensions.."
|
||||||
code --install-extension esbenp.prettier-vscode > /dev/null
|
code --install-extension esbenp.prettier-vscode > /dev/null
|
||||||
code --install-extension golang.go > /dev/null
|
code --install-extension golang.go > /dev/null
|
||||||
code --install-extension ms-azuretools.vscode-docker > /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
|
code --install-extension vscjava.vscode-java-debug > /dev/null
|
||||||
|
|
||||||
# OpenRA - Red Alert Engine
|
# OpenRA - Red Alert Engine
|
||||||
|
echo "ℹ️ Installing OpenRA..."
|
||||||
sudo snap install openra
|
sudo snap install openra
|
||||||
|
|
||||||
# CrossFTP
|
# 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
|
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! 🚀"
|
||||||
Reference in New Issue
Block a user