diff --git a/alpine/setup-alpine.sh b/alpine/vps-install-alpine.sh similarity index 100% rename from alpine/setup-alpine.sh rename to alpine/vps-install-alpine.sh diff --git a/debian/nvidia-drivers.sh b/debian/nvidia-drivers.sh new file mode 100644 index 0000000..c3acd75 --- /dev/null +++ b/debian/nvidia-drivers.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env sh + +# Check if running as root +if [ "$EUID" -ne 0 ]; then + echo "Please run as root" + exit +fi + +# Ensure dependencies +apt install -y dirmngr ca-certificates software-properties-common apt-transport-https dkms curl + +# Remove all old nvidia Drivers +apt autoremove nvidia* --purge + +# Installs GPG-Keys +curl -fSsL https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/3bf863cc.pub | sudo gpg --dearmor | sudo tee /usr/share/keyrings/nvidia-drivers.gpg > /dev/null 2>&1 + +# Installs Nvidia Repository +cat << END_OF_FILE > /etc/apt/sources.list.d/nvidia-drivers.list +deb [signed-by=/usr/share/keyrings/nvidia-drivers.gpg] https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/ / +END_OF_FILE + +# Installs Nvidia Drivers +apt update && apt install nvidia-driver nvidia-smi nvidia-settings \ No newline at end of file diff --git a/debian/setup-debian.sh b/debian/setup-debian.sh index 0b48be4..f06b166 100644 --- a/debian/setup-debian.sh +++ b/debian/setup-debian.sh @@ -1,32 +1,123 @@ #!/usr/bin/env sh +$INTERACTION_MODE=0 + +# Check if running as root +if [ "$EUID" -ne 0 ]; then + echo "Please run as root" + exit +fi + # Add contrib, non-free and non-free-firmware to the sources -cat << END_OF_FILE > /etc/apt/sources.list -deb https://deb.debian.org/debian trixie main contrib non-free non-free-firmware -deb-src https://deb.debian.org/debian trixie main contrib non-free non-free-firmware +config_sources () { + echo "INFO: ####################### Add contrib, non-free and non-free-firmware to the sources #######################" + interactive + cat << END_OF_FILE > /etc/apt/sources.list + deb https://deb.debian.org/debian bookworm main contrib non-free non-free-firmware + deb-src https://deb.debian.org/debian bookworm main contrib non-free non-free-firmware -deb https://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware -deb-src https://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware + deb https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware + deb-src https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware -deb https://deb.debian.org/debian trixie-updates main contrib non-free non-free-firmware -deb-src https://deb.debian.org/debian trixie-updates main contrib non-free non-free-firmware -END_OF_FILE + deb https://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware + deb-src https://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware + END_OF_FILE + + echo "INFO: ####################### Add Element to the sources #######################" + wget -O /usr/share/keyrings/element-io-archive-keyring.gpg https://packages.element.io/debian/element-io-archive-keyring.gpg + cat << END_OF_FILE > /etc/apt/sources.list.d/element-io.list + deb [signed-by=/usr/share/keyrings/element-io-archive-keyring.gpg] https://packages.element.io/debian/ default main + END_OF_FILE +} # Add multi-arch support -dpkg --add-architecture i386 +config_multi-arch () { + echo "INFO: ####################### Add multi-arch support #######################" + interactive + dpkg --add-architecture i386 +} # Update apt sources -apt-get update - +update_sources () { + echo "INFO: ####################### Update apt sources #######################" + interactive + apt-get update +} # Upgrade upgradeable packages -apt-get upgrade --yes +upgrade_packages () { + echo "INFO: ####################### Upgrade upgradeable packages #######################" + interactive + apt-get upgrade --yes +} -# Installs packages -apt-get install --yes gnome-core gnome-connections gnome-text-editor gnome-disk-utility gnome-passwordsafe gnome-feeds vim curl chromium dropbear dropbear-initramfs steam-installer wine wine64 protontricks pcsx2 openjdk-17-jre flatpak gnome-software-plugin-flatpak git python3 python3-venv qemu-kvm virt-manager nvidia-driver +# Install packages +install_packages () { + echo "INFO: ####################### Install packages #######################" + interactive + apt-get install --yes element-desktop gnome-core gnome-connections gnome-text-editor gnome-disk-utility gnome-passwordsafe gnome-feeds vim curl chromium dropbear dropbear-initramfs steam-installer wine wine64 protontricks pcsx2 openjdk-17-jre flatpak gnome-software-plugin-flatpak git python3 python3-venv qemu-kvm virt-manager tmux apostrophe +} # Install Proton-GE -wget -q -O - https://git.adrianux.net/ahoemann/Setup-Scripts/raw/branch/main/proton/proton-ge-setup.sh | bash +install_proton-ge () { + echo "INFO: ####################### Install Proton-GE #######################" + interactive + wget -q -O - https://git.adrianux.net/ahoemann/Setup-Scripts/raw/branch/main/proton/proton-ge-setup.sh | bash +} + +# Setup Flatpaks +setup_flatpaks () { + echo "INFO: ####################### Setup Flatpak #######################" + interactive + flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo + flatpak install --assumeyes --noninteractive flathub org.telegram.desktop flathub com.usebottles.bottles + flatpak override --filesystem=host +} + +# Install NordVPN +install_nordvpn () { + echo "INFO: ####################### Install NordVPN #######################" + interactive + sh <(curl -sSf https://downloads.nordcdn.com/apps/linux/install.sh) +} +# Install Internet Archive CLI +install_ia-cli () { + echo "INFO: ####################### Install Internet Archive CLI #######################" + interactive + wget https://archive.org/download/ia-pex/ia -o /tmp/ia + chmod +x /tmp/ia + mv /tmp/ia /usr/bin/ia +} + +main () { + config_sources + config_multi-arch + update_sources + upgrade_packages + install_packages + install_proton-ge + setup_flatpaks + install_nordvpn + install_ia-cli +} + +if [ $1 == "-i" ]; then + $INTERACTION_MODE="1" +elif [ -z $1 ]; then + $1 +else + main +fi + +# Check if running in interactive mode +interactive () { + if [ $INTERACTION_MODE -eq "1" ];then + echo "INFO: ctrl+c to stop the script" + read -p "Press any key to start the current step..." + fi +} + +if [ -n $(lspci | grep nvidia) ]; then + wget -q -O - https://git.adrianux.net/ahoemann/Setup-Scripts/raw/branch/main/debian/nvidia-drivers.sh | sh + exit +fi -# Setup Flatpak repo -flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo -flatpak install --assumeyes --noninteractive flathub org.telegram.desktop flathub com.usebottles.bottles diff --git a/setup-main.sh b/setup-main.sh index 9e2e395..22a58be 100644 --- a/setup-main.sh +++ b/setup-main.sh @@ -1,12 +1,10 @@ #!/bin/sh -# Incase of pipefail stop the script -set -euo pipefail -if [ $SCRIPT -eq "debian-setup" ]; then +if [ $SCRIPT -eq "setup-ebian" ]; then wget -q -O - https://git.adrianux.net/ahoemann/Setup-Scripts/raw/branch/main/debian/setup-debian.sh | bash -elif [ $SCRIPT -eq "alpine-setup" ]; then - wget -q -O - https://git.adrianux.net/ahoemann/Setup-Scripts/raw/branch/main/alpine/setup-alpine.sh | bash +elif [ $SCRIPT -eq "vps-install-alpine" ]; then + wget -q -O - https://git.adrianux.net/ahoemann/Setup-Scripts/raw/branch/main/alpine/vps-install-alpine.sh | bash else echo $SCRIPT "is an invalid option." exit 1