A simple script to install about three dozen or so applications and system utilities on Debian based Linux.

This script also cleans up some common errors, disables IPv6 and some other small goodies that most folks will want on a fresh Linux install.

Copy and paste all of the text below and input into your bash script, name it anything you want:

#!/bin/bash
#
# Original script written: 07 OCTOBER 2023
# Written by GrapheneGoat: scripts@graphenegoat.com // https://graphenegoat.com/
#
# For Debian based systems using APT package manager (Debian, Pop!_OS, Ubuntu, Linux Mint, etc) (tested on Pop!_OS)
# Note: on Debian, you will first need to add the user to the sudoers file. To do so, you must switch to root, use the following commands:
#
# su –
# visudo
# add the following line below the root user permissions. Replace ‘user’ with your current username:
# user ALL=(ALL) NOPASSWD:ALL
#
# —- A SCRIPT FOR INSTALLING THE FOLLOWING APPLICATIONS: —-
# Flatpak, Warehouse, AppImageLauncher and Flatseal (for Flatpaks)
# VLC, Audacity, ffmpeg, SoundConverter, MetaData Cleaner, FreeTube
# KeePassXC, BleachBit, HTOP, BTOP, Hardinfo, Stacer, mLocate, ClamTK, Neofetch, curl/wget, fdupes, gnome-tweaks
# Brave Browser, LibreWolf Browser, Tor Browser, Mullvad Browser
# Cryptomator, Veracrypt, ProtonVPN
# PDF Mix Tool, PDF Arranger, GIMP, Inkscape, Scribus, Xournal++
# Transmission (torrent), YT-DLP, Onionshare, Calibre, GNOME Maps, Balena Etcher
# Signal desktop, #Telegram, #Session, RSS Guard, OnionShare, Standard Notes
#
# You can add or remove any applications listed below to customize this script for yourself
# A great resource if new to BASH scripting is LearnLinux.tv to learn more
#
# To execute this script from your terminal, first make this file executable by running the following command:
# sudo chmod +x graphenegoat_installer_2024.sh
# Then issue the command:
# sudo bash graphenegoat_installer_2024.sh
#
clear
OUTPUT=$(pidof gnome-shell)
sudo renice 15 $OUTPUT
echo “”
echo “========================================================”
echo “== GNOME terminal session has been reniced to 15…                                   ==”
echo “========================================================”
sleep 2
#
#
echo “About to install common system utilities and other core applications to this system”
echo “-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-”
echo “#####################################################################################”
echo “####                                                 GrapheneGoat Installer                                                                   ####”
echo “####                                                   * 09 Jun 2024 v1.3 *                                                                     ####”
echo “#####################################################################################”
echo “-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-”
echo “”
date
sleep 3
echo “Updating System…”
sleep 0.5
#
sudo apt update && sudo apt upgrade -y
#
sudo apt install flatpak -y
sudo apt install gnome-software-plugin-flatpak -y
flatpak remote-add –user –if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub com.github.tchx84.Flatseal -y
flatpak install flathub io.github.flattool.Warehouse -y
#
echo “Flatpak and associated utilities INSTALLED!”
sleep 1
#
sudo apt install gnome-tweaks -y
#
echo “00000000000000000000000000000000000000000”
echo “Disk usage:”
space1=$(sudo df -h | grep /dev/mapper/data-root)
echo $space1
echo “00000000000000000000000000000000000000000”
sleep 5
#
echo “UPDATE AND UPGRADE COMPLETED, INSTALL WILL BEGING IN 10 SECONDS”
sleep 2
i=10
while [[ $i -gt 0 ]] ; do
echo “$i”
(( i -= 1 ))
sleep 1
done
#
# Standard Notes (fully encrypted notes and 2FA app)
echo “INSTALLING Standard Notes….”
sleep 2
wget https://github.com/standardnotes/app/releases/download/%40standardnotes/desktop%403.194.11/standard-notes-3.194.11-linux-x86_64.AppImage
chmod a+x standard-notes-3.194.11-linux-x86_64.AppImage
echo “Standard Notes Installed!”
sleep 1
#
# Xournal++ (PDF editor)
flatpak install flathub com.github.xournalpp.xournalpp -y
echo “”
echo “Xournal++ Installed!”
echo “”
sleep 1
# Scribus (Very powerful PDF create and edit tool)
flatpak install flathub net.scribus.Scribus -y
echo “”
echo “Scribus Installed!”
echo “”
sleep 1
#
# Maps (GNOME Project/OpenStreetMaps)
echo “INSTALLING Maps”
sleep 2
flatpak install flathub org.gnome.Maps -y
echo “MAPS INSTALLED!”
sleep 1
#
# Install VLC Media Player
echo “INSTALLING VLC…………………………”
sleep 1
sudo apt install vlc -y
echo “VLC INSTALLED!”
sleep 1
#
# Install KeePassXC Password Manager
echo “INSTALLING KEEPASSXC………………………”
sleep 1
sudo apt install keepassxc -y
echo “KeePassXC INSTALLED!”
sleep 1
#
# Install BleachBit
sleep 1
echo “INSTALLING BLEACHBIT…………………………”
sleep 1
sudo apt install bleachbit -y
echo “BleachBit INSTALLED!”
sleep 1
#
# YT-DLP Video Downloader
echo “INSTALLING YT-DLP………………………..”
sleep 2
sudo apt install yt-dlp -y
echo “YT-DLP INSTALLED!”
sleep 1
# Optional method:
# sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp
# sudo chmod a+rx /usr/local/bin/yt-dlp
# echo “YT-DLP INSTALLED!”
# sleep 2
#
# Install ffmpeg utility (powerful media tool/plugin)
echo “INSTALLING FFMPEG UTILITY…………………………”
sleep 2
sudo apt install ffmpeg -y
echo “ffmpeg utility INSTALLED!”
sleep 1
#
# Install Hardinfo utility (similar to Task Manager / Device Manager)
echo “INSTALLING HARDINFO UTILITY……………………….”
sleep 2
sudo apt install hardinfo -y
echo “Hardinfo utility INSTALLED!”
sleep 1
#
# Install BTOP utility for system monitoring from terminal (use command ‘btop’ to launch, ctl + c or ‘q’ to quit”
echo “INSTALLING BTOP UTILITY……………………..”
sleep 2
sudo apt install btop -y
echo “BTOP INSTALLED!”
sleep 1
#
# Install Nomacs image viewer and editor
echo “INSTALLING NOMACS………………..”
sleep 2
sudo apt install nomacs -y
echo “Nomacs INSTALLED!”
sleep 1
#
# Install HTOP utility for system monitoring from terminal (use command ‘htop’ to launch, ctl + c to quit”
echo “INSTALLING HTOP………………”
sleep 2
sudo apt install htop -y
echo “HTOP INSTALLED!”
sleep 1
#
# mLocate (system utility to locate files via the terminal)
echo “INSTALLING mlocate………………….”
sleep 2
sudo apt install mlocate -y
echo “MLOCATE INSTALLED!”
sleep 1
#
# Stacer system monitor
echo “INSTALLING Stacer……………………….”
sleep 2
sudo apt install stacer -y
echo “STACER INSTALLED!”
sleep 1
#
# Metadata Cleaner (strip files and photos of EXIF metadata)
echo “INSTALLING MetaData Cleaner……………..”
sleep 2
flatpak install flathub fr.romainvigier.MetadataCleaner -y
echo “METADATA CLEANER INSTALLED!”
sudo apt install mat2 -y
sleep 1
#
# Sound Converter (convert audio to any format)
echo “INSTALLING Sound Converter……………..”
sleep 2
flatpak install flathub org.soundconverter.SoundConverter -y
echo “SOUNDCOVERTER INSTALLED!”
sleep 1
#
# Audacity (Audio editing software)
echo “INSTALLING Audacity…………………..”
sleep 2
flatpak install flathub org.audacityteam.Audacity -y
echo “AUDACITY INSTALLED!”
sleep 1
#
# ClamTK AntiVirus ***(Deprecated as of June 2024)
echo “INSTALLING ClamTK AntiVirus………..”
sleep 2
flatpak install flathub com.gitlab.davem.ClamTk -y
echo “CLAM TK ANTIVIRUS INSTALLED!”
sleep 1
#
# WGET
echo “INSTALLING WGET………………….”
sleep 1
sudo apt install wget -y
echo “WGET INSTALLED!”
sleep 1
#
# Fdupes Install (searches system and removes duplicate files)
echo “”
echo ” Installing FDUPES……………..”
sleep 1
sudo apt install fdupes -y
echo “Fdupes INSTALLED!”
sleep 2
#
# Neofetch (Deprecated, but still works. Displays information about your system in the terminal)
echo “INSTALLING Neofetch…………….”
sleep 1
sudo apt install neofetch -y
echo “NEOFETCH INSTALLED!”
neofetch
sleep 2
#
echo “####################################################”
echo “#### ENABLING UFW FIREWALL ####”
echo “####################################################”
sudo ufw enable
sleep 1
sudo ufw status verbose
sleep 3
#
# GUFW
echo “”
echo “INSTALLING GUFW…………………”
sleep 1
sudo apt-get install gufw -y
echo “GRAPHICAL UFW INSTALLED!”
sleep 1
#
# Timeshift backup software (Creates restore points/backups for your system, launch and configure to enable)
echo “INSTALLING TimeShift……………”
sleep 2
sudo apt install timeshift -y
echo “TIMESHIFT INSTALLED!”
sleep 1
#
# ProtonVPN
echo “INSTALLING Proton VPN…………”
sleep 2
flatpak install flathub com.protonvpn.www -y
echo “PROTON VPN INSTALLED!”
sleep 1
#
# Python3
echo “INSTALLING Python3…………..”
sleep 1
sudo apt install python3 -y
echo “PYTHON 3 INSTALLED!”
sleep 1
#
# AppImage Launcher
echo “INSTALLING AppImage Launcher…”
sleep 2
sudo apt install software-properties-common
sudo add-apt-repository ppa:appimagelauncher-team/stable
sudo apt update
sudo apt install appimagelauncher
echo “APPIMAGE LAUNCHER INSTALLED!”
sleep 1
#
# OnionShare (Free, anonymous, unlimited filesharing using Tor network)
echo “INSTALLING OnionShare……..”
sleep 2
flatpak install flathub org.onionshare.OnionShare -y
echo “ONIONSHARE INSTALLED!”
sleep 1
#
# Cryptomator (Make encrypted containers to protect your files)
echo “INSTALLING Cryptomator…….”
sleep 2
flatpak install flathub org.cryptomator.Cryptomator -y
echo “CRYPTOMATOR INSTALLED!”
sleep 1
#
# Calibre (eBook viewing software/PDF Viewer)
echo “INSTALLING Calibre……….”
sleep 2
flatpak install flathub com.calibre_ebook.calibre -y
echo “CALIBRE INSTALLED!”
sleep 1
gsettings set org.gnome.nautilus.preferences show-delete-permanently true
echo “Delete Permanently Menu Option is set to TRUE”
sleep 2
#
# PDF Mix Tool
echo “################################”
echo “INSTALLING PDF Mix Tool………”
echo “################################”
sleep 2
flatpak install flathub eu.scarpetta.PDFMixTool -y
echo “PDF MIX TOOL INSTALLED!”
sleep 1
# PDF Arranger
echo “INSTALLING PDF Arranger…….”
sleep 2
flatpak install flathub com.github.jeromerobert.pdfarranger -y
echo “PDF ARRANGER INSTALLED!”
sleep 1
# GIMP image program
echo “INSTALLING GIMP…………..”
sleep 2
flatpak install flathub org.gimp.GIMP -y
echo “GIMP INSTALLED!”
sleep 1
# Inkscape image program
echo “INSTALLING Inkscape………”
sleep 2
flatpak install flathub org.inkscape.Inkscape -y
echo “INKSCAPE INSTALLED!”
sleep 1
#
# Transmission (a torrenting program)
echo “INSTALLING Transmission…..”
sleep 2
flatpak install flathub com.transmissionbt.Transmission -y
echo “TRANSMISSION INSTALLED!”
sleep 1
#
# Signal messenger (may also be installed via APT, view commands on https://signal.org/download/linux/)
echo “#############################”
echo “INSTALLING Signal desktop….”
echo “*****************************”
sleep 2
flatpak install flathub org.signal.Signal -y
echo “SIGNAL INSTALLED!”
sleep 1
#
# Telegram
#echo “INSTALLING Telegram desktop….”
#sleep 2
#flatpak install flathub org.telegram.desktop -y
#echo “TELEGRAM INSTALLED!”
#sleep 1
#
# FreeTube (A YouTube front end client)
echo “INSTALLING FreeTube………..”
sleep 2
flatpak install flathub io.freetubeapp.FreeTube -y
echo “FREETUBE INSTALLED!”
sleep 1
#
# RSS Reader: RSS Guard
echo “INSTALLING RSS Guard……….”
sleep 2
flatpak install flathub io.github.martinrotter.rssguard -y
echo “RSS GUARD INSTALLED!”
sleep 1
#
# Balena Etcher (Very good app to create bootable media) (make executable: sudo chmod+x balenaEtcher-linux-x64-1.19.21.zip)
echo “INSTALLING BALENA ETCHER”
wget https://github.com/balena-io/etcher/releases/download/v1.19.21/balenaEtcher-linux-x64-1.19.21.zip
echo “BALENA ETCHER INSTALLED!”
echo “Unzip folder and extract AppImage to use”
sleep 3
#
# Session messenger app
#echo “INSTALLING Session desktop….”
#sleep 2
#flatpak install flathub network.loki.Session -y
#echo “SESSION INSTALLED!”
#sleep 1
#
# Brave Browser
echo “================================”
echo “INSTALLING Brave Browser……..”
echo “================================”
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
sudo apt update
sudo apt install brave-browser -y
sleep 2
echo “BRAVE BROWSER INSTALLED!”
sleep 1
#
# LibreWolf Browser
echo “INSTALLING LibreWolf Browser………”
sleep 2
# Optional install using Flatpak version:
# flatpak install flathub io.gitlab.librewolf-community -y
sudo apt update && sudo apt install -y wget gnupg lsb-release apt-transport-https ca-certificates
distro=$(if echo ” una bookworm vanessa focal jammy bullseye vera uma ” | grep -q ” $(lsb_release -sc) “; then lsb_release -sc; else echo focal; fi)
wget -O- https://deb.librewolf.net/keyring.gpg | sudo gpg –dearmor -o /usr/share/keyrings/librewolf.gpg
sudo tee /etc/apt/sources.list.d/librewolf.sources << EOF > /dev/null
Types: deb
URIs: https://deb.librewolf.net
Suites: $distro
Components: main
Architectures: amd64
Signed-By: /usr/share/keyrings/librewolf.gpg
EOF
sudo apt update
sudo apt install librewolf -y
echo “LIBREWOLF BROWSER INSTALLED!”
sleep 1
#
# Tor Browser
echo “INSTALLING Tor Browser……….”
sleep 1
flatpak install flathub com.github.micahflee.torbrowser-launcher -y
echo”TOR BROWSER INSTALLED!”
sleep 1
#
# Mullvad Browser
echo “Installing Mullvad Browser……..”
sleep 2
# Optional Flatpak version use below command instead:
#flatpak install flathub net.mullvad.MullvadBrowser -y
#
sudo curl -fsSLo /usr/share/keyrings/mullvad-keyring.asc https://repository.mullvad.net/deb/mullvad-keyring.asc
command: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
sudo apt update
sudo apt install mullvad-browser -y
echo “MULLVAD BROWSER INSTALLED!”
sleep 1
#
# GNOME Boxes (Virtual Machine software)
#echo “Preparing to install GNOME Boxes virtualization software…….”
#flatpak install flathub org.gnome.Boxes -y
#echo “GNOME BOXES INSTALLED!”
#sleep 1.5
#
# ================================== *** VeraCrypt for Ubuntu 22.04 *** ========================================
# (as of Aug 2024, check for updated versions)
#
# Install GUI version of VeraCrypt for Ubuntu 22.04 – will require manual updating of this script for later releases or different version
#
echo “VeraCrypt package veracrypt-1.26.14-Ubuntu-22.04-amd64.deb installing”
cd ~
cd Downloads/
wget https://launchpad.net/veracrypt/trunk/1.26.14/+download/veracrypt-1.26.14-Ubuntu-22.04-amd64.deb
sudo dpkg -i veracrypt-1.26.14-Ubuntu-22.04-amd64.deb
sudo apt –fix-broken install -y
#
echo “Installation script has finished”
echo “..**@@@**..”
sleep 1.5
#
echo “”
echo “Verifying Signature using SHA512….”
sha512sum veracrypt-1.26.14-Ubuntu-22.04-amd64.deb
checksum=3ad91fb20d2501b0f1c5c77dc116342fbe1f1c74cd17f56498709000bfc34115cbcd5403f910fadc6feb619de5caad50853d0a4da0e0f03985e68f4e50515bdb
echo “checksum comparison”
echo $checksum
echo -n
echo “Verify that both signatures match, if not do NOT use!!!”
spd-say -r 10 -R 70 -t male2 “Attention. Please verify that these signatures above are an exact match!”
#
# Define the path to the Brave repo list file
BRAVE_LIST=”/etc/apt/sources.list.d/brave-browser-release.list”
#
# This section fixes an error message caused by adding Brave Browser, it adds ‘[arch=amd64] to the brave config file
# Check if the Brave list file exists
if [ ! -f “$BRAVE_LIST” ]; then
echo “Error: $BRAVE_LIST does not exist.”
exit 1
fi

# Backup the original file before making changes
sudo cp “$BRAVE_LIST” “$BRAVE_LIST.bak”

# Modify the Brave repo line to include [arch=amd64]
sudo sed -i ‘/^deb /s|^deb \([^ ]*\)|deb [arch=amd64] \1|’ “$BRAVE_LIST”

# Verify the modification
if grep -q “deb \[arch=amd64\]” “$BRAVE_LIST”; then
echo “Successfully added [arch=amd64] to $BRAVE_LIST.”
else
echo “Failed to add [arch=amd64] to $BRAVE_LIST.”
fi
echo “”
echo “===============END OF SCRIPT!==============”
echo “”
sleep 5
#
# ————————–end of installs———————————–#
#
# INSTALLING AND CONFIGURING IPTABLES PERSISTENT AND DISABLING IPV6
echo “”
echo “INSTALLING IPTABLES PERSISTENT…………………”
sleep 1
sudo apt install iptables-persistent -y
echo “IPTABLES PERSISTENT INSTALLED!”
sleep 1

echo “”
echo “DISABLING IPV6 VIA IPTABLES…………………”
sleep 1
sudo ip6tables -P INPUT DROP
sudo ip6tables -P FORWARD DROP
sudo ip6tables-save | sudo tee /etc/iptables/rules.v6
echo “IPV6 RULES SAVED!”
sleep 1

echo “”
echo “MODIFYING /etc/sysctl.conf TO DISABLE IPV6…………………”
sleep 1
sudo sed -i ‘/^net.ipv6.conf.all.disable_ipv6/d’ /etc/sysctl.conf
sudo sed -i ‘/^net.ipv6.conf.default.disable_ipv6/d’ /etc/sysctl.conf
sudo sed -i ‘/^net.ipv6.conf.lo.disable_ipv6/d’ /etc/sysctl.conf
echo “net.ipv6.conf.all.disable_ipv6 = 1” | sudo tee -a /etc/sysctl.conf
echo “net.ipv6.conf.default.disable_ipv6 = 1” | sudo tee -a /etc/sysctl.conf
echo “net.ipv6.conf.lo.disable_ipv6 = 1” | sudo tee -a /etc/sysctl.conf
echo “CHANGES TO /etc/sysctl.conf SAVED!”
sleep 1

echo “”
echo “MODIFYING /etc/ufw/sysctl.conf…………………”
sleep 1
sudo sed -i ‘s/^net\/ipv6\/conf\/all\/accept_redirects=0/#net\/ipv6\/conf\/all\/accept_redirects=0/’ /etc/ufw/sysctl.conf
sudo sed -i ‘s/^net\/ipv6\/conf\/default\/accept_redirects=0/#net\/ipv6\/conf\/default\/accept_redirects=0/’ /etc/ufw/sysctl.conf
sudo sed -i ‘s/^#net\/ipv6\/conf\/default\/autoconf=1/net\/ipv6\/conf\/default\/autoconf=1/’ /etc/ufw/sysctl.conf
sudo sed -i ‘s/^#net\/ipv6\/conf\/all\/autoconf=1/net\/ipv6\/conf\/all\/autoconf=1/’ /etc/ufw/sysctl.conf
echo “CHANGES TO /etc/ufw/sysctl.conf SAVED!”
sleep 1

echo “”
echo “CONFIGURATION COMPLETE!”
#
sudo apt update
sudo apt upgrade -y
sudo apt full-upgrade -y
#pop-upgrade release upgrade <– use this to upgrade distro release
flatpak update -y
sudo apt autoremove -y
sudo apt autoclean
#
spd-say -t female2 -R 70 -p -5 -r -10 “Installation is complete! See disk usage below.”
echo “”
echo “* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ”
echo “——————————————————————-”
echo “* https://graphenegoat.com/ * ”
echo “——————————————————————-”
echo “* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ”
echo “”
echo “”
echo “============================================”
echo “Disk usage prior to install was:”
echo “”
echo $space1
sleep 1
echo “============================================”
echo “Disk usage after installation is:”
echo “”
space2=$(sudo df -h | grep /dev/mapper/data-root)
echo $space2
echo “============================================”
sleep 1
echo “”
echo date
echo “”
echo “exit code is:”
echo $?
exit
###########################################################################################################
# EASTER EGG: visit ‘No Agenda Show’ Episode 1595 and start playing at 02:23:00 for an excellent sound! #
###########################################################################################################