# This script expects an OS that is based on Debian in at least package management usage="$(basename "$0") [-h] [-s] [-n hostname] -- my script for initializing new Linux installs \n\n where:\n -h, ? show this help text\n -s, --server set server flag to only install server components, default\n -n, --name [hostname] set the hostname to the argument" # A repos don't support virgnia (Mint codename), only recognizing Jammy (Ubuntu) distro=jammy # A POSIX variable OPTIND=1 # Reset in case getopts has been used previously in the shell. client=true # Some POSIX getopts goodness for portability while getopts "h?sn:" opt; do case "$opt" in h|\?) echo -e $usage exit 0 ;; s|server) client=false ;; n|name) sudo hostnamectl set-hostname $OPTARG ;; esac done # A few repos need the i386 arch sudo dpkg --add-architecture i386 # Some packages need these sudo apt install -y wget gnupg lsb-release apt-transport-https ca-certificates software-properties-common # A few packages store their keys in specific location that doesn't exist at first sudo install -m 0755 -d /etc/apt/keyrings if [ $client ] then # Brave Browser sudo apt install curl sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg] https://brave-browser-apt-release.s3.brave.com/ stable main" | sudo tee /etc/apt/sources.list.d/brave-browser-release.list # Signal Desktop Client # NOTE: These instructions only work for 64-bit Debian-based # Linux distributions such as Ubuntu, Mint etc. # 1. Install our official public software signing key: wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > signal-desktop-keyring.gpg cat signal-desktop-keyring.gpg | sudo tee /usr/share/keyrings/signal-desktop-keyring.gpg > /dev/null # 2. Add our repository to your list of repositories: echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main' |\ sudo tee /etc/apt/sources.list.d/signal-xenial.list # Mullvad sudo curl -fsSLo /usr/share/keyrings/mullvad-keyring.asc https://repository.mullvad.net/deb/mullvad-keyring.asc echo "deb [signed-by=/usr/share/keyrings/mullvad-keyring.asc arch=$( dpkg --print-architecture )] https://repository.mullvad.net/deb/stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/mullvad.list # VS Codium wget -qO - https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg \ | gpg --dearmor \ | sudo dd of=/usr/share/keyrings/vscodium-archive-keyring.gpg echo 'deb [ signed-by=/usr/share/keyrings/vscodium-archive-keyring.gpg ] https://download.vscodium.com/debs vscodium main' \ | sudo tee /etc/apt/sources.list.d/vscodium.list # Wine sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/bookworm/winehq-bookworm.sources # Nicotine for Soulseek sudo add-apt-repository ppa:nicotine-team/stable # Solaar - Logitech management software sudo add-apt-repository ppa:solaar-unifying/stable # AppImage Launcher sudo add-apt-repository ppa:appimagelauncher-team/stable # Virtual Box deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg] https://download.virtualbox.org/virtualbox/debian $distro contrib wget -O- https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo gpg --yes --output /usr/share/keyrings/oracle-virtualbox-2016.gpg --dearmor # Librewolf sudo apt install -y wget gnupg lsb-release apt-transport-https ca-certificates wget -O- https://deb.librewolf.net/keyring.gpg | sudo gpg --dearmor -o /usr/share/keyrings/librewolf.gpg sudo cat << EOF > /etc/apt/sources.list.d/librewolf.sources Types: deb URIs: https://deb.librewolf.net Suites: $distro Components: main Architectures: amd64 Signed-By: /usr/share/keyrings/librewolf.gpg EOF fi if [ !client ] then # Docker sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $distro stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null fi # Update or none of this will show up sudo apt update if [ $client ] then # Apps that don't need anything besides the parent package call sudo apt install -y brave-browser signal-desktop mullvad-vpn codium librewolf solaar appimagelauncher # Wine has some recommends, install that with its own command sudo apt install --install-recommends winehq-stable else # Docker just has a lot sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin fi