shell-toolkit — Script Documentation

Auto-generated from the # ---DOC-START--- / # ---DOC-END--- metadata block at the top of every script. Do not edit this file by hand — edit the metadata in the scripts and re-run generate-docs.py instead.

At a Glance

MetricValue
Total scripts129
Directories18
Require root / sudo70 / 129
Interactive23 / 129
Idempotent (always / mostly / no) 119 / 8 / 2
Scripts with dependencies6 / 129
DirectoryScripts
standalone/apt/cli21
standalone/apt/gui21
standalone/chmod4
standalone/cleanup13
standalone/docker1
standalone/flatpak3
standalone/git2
standalone/inventory/network16
standalone/inventory/system19
standalone/lsp3
standalone/maintenance4
standalone/pipx3
standalone/server6
standalone/showcase1
standalone/utilities3
standalone/yt-dlp3
workflows5
workflows/deploy-server1

Repository Structure

shell-toolkit/
├── .github/
│   └── workflows/
│       ├── bash-syntax-check.yml
│       └── generate-documentation.yml
├── docs/
│   ├── index.html
│   └── metadata-guidelines.md
├── standalone/
│   ├── apt/
│   │   ├── cli/
│   │   │   ├── install-bash-completion.sh
│   │   │   ├── install-bat.sh
│   │   │   ├── install-chafa.sh
│   │   │   ├── install-cpp.sh
│   │   │   ├── install-docker.sh
│   │   │   ├── install-eza.sh
│   │   │   ├── install-firewalld-cli.sh
│   │   │   ├── install-flatpak.sh
│   │   │   ├── install-fzf.sh
│   │   │   ├── install-git.sh
│   │   │   ├── install-htop.sh
│   │   │   ├── install-npm.sh
│   │   │   ├── install-nvidia-driver.sh
│   │   │   ├── install-php.sh
│   │   │   ├── install-pipx.sh
│   │   │   ├── install-python.sh
│   │   │   ├── install-ranger.sh
│   │   │   ├── install-ripgrep.sh
│   │   │   ├── install-veracrypt-cli.sh
│   │   │   ├── install-virtualbox-guest-additions.sh
│   │   │   └── install-zoxide.sh
│   │   └── gui/
│   │       ├── install-blender.sh
│   │       ├── install-firefox.sh
│   │       ├── install-firewalld-gui.sh
│   │       ├── install-flameshot.sh
│   │       ├── install-ghostwriter.sh
│   │       ├── install-gimp.sh
│   │       ├── install-inkscape.sh
│   │       ├── install-kate.sh
│   │       ├── install-kdevelop.sh
│   │       ├── install-kio-admin.sh
│   │       ├── install-krusader.sh
│   │       ├── install-obs-studio.sh
│   │       ├── install-okular.sh
│   │       ├── install-protonvpn.sh
│   │       ├── install-qbittorrent.sh
│   │       ├── install-qwinff.sh
│   │       ├── install-remmina.sh
│   │       ├── install-tor-browser.sh
│   │       ├── install-veracrypt-gui.sh
│   │       ├── install-virtualbox.sh
│   │       └── install-vlc.sh
│   ├── chmod/
│   │   ├── chmod-add-x.sh
│   │   ├── chmod-remove-x.sh
│   │   ├── chmod-set-644.sh
│   │   └── chmod-set-755.sh
│   ├── cleanup/
│   │   ├── cleanup-apt.sh
│   │   ├── cleanup-browser-brave.sh
│   │   ├── cleanup-browser-chrome.sh
│   │   ├── cleanup-browser-chromium.sh
│   │   ├── cleanup-browser-edge.sh
│   │   ├── cleanup-browser-firefox.sh
│   │   ├── cleanup-browser-opera.sh
│   │   ├── cleanup-browser-vivaldi.sh
│   │   ├── cleanup-docker.sh
│   │   ├── cleanup-kernels.sh
│   │   ├── cleanup-logs.sh
│   │   ├── cleanup-temp.sh
│   │   └── cleanup-thumbnails.sh
│   ├── docker/
│   │   └── update-docker-compose-stacks.sh
│   ├── flatpak/
│   │   ├── install-discord.sh
│   │   ├── install-steam.sh
│   │   └── install-telegram.sh
│   ├── git/
│   │   ├── git-clone-all.sh
│   │   └── git-rewrite-identity.sh
│   ├── inventory/
│   │   ├── network/
│   │   │   ├── get-bandwidth-summary.sh
│   │   │   ├── get-connectivity.sh
│   │   │   ├── get-dns-info.sh
│   │   │   ├── get-established-connections.sh
│   │   │   ├── get-firewall-status.sh
│   │   │   ├── get-interface-statistics.sh
│   │   │   ├── get-listening-ports.sh
│   │   │   ├── get-neighbors.sh
│   │   │   ├── get-network-interfaces.sh
│   │   │   ├── get-network-services.sh
│   │   │   ├── get-network-statistics.sh
│   │   │   ├── get-network-summary.sh
│   │   │   ├── get-public-ip.sh
│   │   │   ├── get-routing.sh
│   │   │   ├── get-vpn-status.sh
│   │   │   └── get-wifi-status.sh
│   │   └── system/
│   │       ├── get-cpu-info.sh
│   │       ├── get-directory-tree.sh
│   │       ├── get-dmi-info.sh
│   │       ├── get-docker-info.sh
│   │       ├── get-host-info.sh
│   │       ├── get-installed-packages.sh
│   │       ├── get-journal-errors.sh
│   │       ├── get-kernel-log.sh
│   │       ├── get-kernel-parameters.sh
│   │       ├── get-local-users.sh
│   │       ├── get-logged-in-users.sh
│   │       ├── get-memory-info.sh
│   │       ├── get-nginx-info.sh
│   │       ├── get-pci-devices.sh
│   │       ├── get-services-info.sh
│   │       ├── get-storage-info.sh
│   │       ├── get-top-processes.sh
│   │       ├── get-usb-devices.sh
│   │       └── get-user-crontab.sh
│   ├── lsp/
│   │   ├── install-bash-language-server.sh
│   │   ├── install-markdown-language-server.sh
│   │   └── install-python-language-server.sh
│   ├── maintenance/
│   │   ├── create-swap-file.sh
│   │   ├── grant-sudo.sh
│   │   ├── set-bashrc-default.sh
│   │   └── ufw-firewalld-migration.sh
│   ├── pipx/
│   │   ├── install-gallery-dl.sh
│   │   ├── install-spotdl.sh
│   │   └── install-yt-dlp.sh
│   ├── server/
│   │   ├── deploy-filebrowser.sh
│   │   ├── deploy-grafana.sh
│   │   ├── deploy-nginx.sh
│   │   ├── deploy-portainer.sh
│   │   ├── deploy-ssh.sh
│   │   └── server-bootstrap.sh
│   ├── showcase/
│   │   └── showcase-bash-qol.sh
│   ├── utilities/
│   │   ├── discord-attachments-dl.sh
│   │   ├── download-java.sh
│   │   └── prompt-cli.sh
│   └── yt-dlp/
│       ├── yt-dlp-all-formats.sh
│       ├── yt-dlp-audio-only.sh
│       └── yt-dlp-best-format.sh
├── workflows/
│   ├── deploy-server/
│   │   ├── .env.example
│   │   └── deploy-server.sh
│   ├── setup-bash-qol.sh
│   ├── setup-dev-env.sh
│   ├── setup-flatpak.sh
│   ├── setup-oh-my-bash.sh
│   └── setup-pipx.sh
├── LICENSE
├── README.md
└── generate-docs.py

All Scripts

DirectoryScriptSummarySudoInteractiveIdempotentDeps
standalone/apt/cliinstall-bash-completion.shInstall bash-completion from the distribution repositories.
standalone/apt/cliinstall-bat.shInstall bat (cat clone with syntax highlighting) from the distribution repositories.
standalone/apt/cliinstall-chafa.shInstall chafa (terminal image/GIF viewer) from the distribution repositories.
standalone/apt/cliinstall-cpp.shInstall the C and C++ development environment.
standalone/apt/cliinstall-docker.shInstall Docker Engine and the Docker Compose plugin.
standalone/apt/cliinstall-eza.shInstall eza (modern ls replacement), adding the official apt repo if needed.
standalone/apt/cliinstall-firewalld-cli.shInstall firewalld.
standalone/apt/cliinstall-flatpak.shInstall flatpak, add the Flathub remote, optionally enable KDE Discover integration.
standalone/apt/cliinstall-fzf.shInstall fzf from the distribution repositories.
standalone/apt/cliinstall-git.shInstall git from the distribution repositories.
standalone/apt/cliinstall-htop.shInstall htop from the distribution repositories.
standalone/apt/cliinstall-npm.shInstall Node.js and npm.
standalone/apt/cliinstall-nvidia-driver.shNVIDIA GPU driver install (auto-detect, apt package, or .run), with nouveau blacklist.⚠️
standalone/apt/cliinstall-php.shInstall PHP and common extensions.
standalone/apt/cliinstall-pipx.shInstall pipx and ensure ~/.local/bin is on PATH.
standalone/apt/cliinstall-python.shInstall the Python development environment.
standalone/apt/cliinstall-ranger.shInstall ranger from the distribution repositories.
standalone/apt/cliinstall-ripgrep.shInstall ripgrep from the distribution repositories.
standalone/apt/cliinstall-veracrypt-cli.shInstall VeraCrypt CLI from the official PPA.⚠️
standalone/apt/cliinstall-virtualbox-guest-additions.shInstall VirtualBox Guest Additions from apt.
standalone/apt/cliinstall-zoxide.shInstall zoxide (smarter cd command) from the distribution repositories.
standalone/apt/guiinstall-blender.shInstall Blender from the distribution repositories.
standalone/apt/guiinstall-firefox.shInstall Firefox from the distribution repositories.
standalone/apt/guiinstall-firewalld-gui.shInstall firewalld with its GUI configuration tool (firewall-config).
standalone/apt/guiinstall-flameshot.shInstall Flameshot from the distribution repositories.
standalone/apt/guiinstall-ghostwriter.shInstall the Ghostwriter Markdown editor.
standalone/apt/guiinstall-gimp.shInstall GIMP from the distribution repositories.
standalone/apt/guiinstall-inkscape.shInstall Inkscape from the distribution repositories.
standalone/apt/guiinstall-kate.shInstall the Kate text editor and official plugins.
standalone/apt/guiinstall-kdevelop.shInstall the KDevelop IDE.
standalone/apt/guiinstall-kio-admin.shInstall kio-admin for Dolphin root access.
standalone/apt/guiinstall-krusader.shInstall Krusader from the distribution repositories.
standalone/apt/guiinstall-obs-studio.shInstall OBS Studio from the distribution repositories.
standalone/apt/guiinstall-okular.shInstall the Okular document viewer.
standalone/apt/guiinstall-protonvpn.shInstall the ProtonVPN from the official Proton apt repository.⚠️
standalone/apt/guiinstall-qbittorrent.shInstall qBittorrent from the distribution repositories.
standalone/apt/guiinstall-qwinff.shInstall QwinFF from the distribution repositories.
standalone/apt/guiinstall-remmina.shInstall Remmina from the distribution repositories.
standalone/apt/guiinstall-tor-browser.shInstall Tor Browser via the official Tor Project apt repository.⚠️
standalone/apt/guiinstall-veracrypt-gui.shInstall VeraCrypt GUI from the official PPA.⚠️
standalone/apt/guiinstall-virtualbox.shInstall VirtualBox from the official Oracle apt repository.⚠️
standalone/apt/guiinstall-vlc.shInstall VLC from the distribution repositories.
standalone/chmodchmod-add-x.shRecursively add execute permission to .sh files in a path.
standalone/chmodchmod-remove-x.shRecursively remove execute permission from .sh files in a path.
standalone/chmodchmod-set-644.shRecursively set permissions to 644 on files in a path.
standalone/chmodchmod-set-755.shRecursively set permissions to 755 on files in a path.
standalone/cleanupcleanup-apt.shClean APT cache and remove orphaned packages.
standalone/cleanupcleanup-browser-brave.shClear cache, cookies, and history for Brave.
standalone/cleanupcleanup-browser-chrome.shClear cache, cookies, and history for Google Chrome.
standalone/cleanupcleanup-browser-chromium.shClear cache, cookies, and history for Chromium.
standalone/cleanupcleanup-browser-edge.shClear cache, cookies, and history for Microsoft Edge.
standalone/cleanupcleanup-browser-firefox.shClear cache, cookies, and history for Firefox.
standalone/cleanupcleanup-browser-opera.shClear cache, cookies, and history for Opera.
standalone/cleanupcleanup-browser-vivaldi.shClear cache, cookies, and history for Vivaldi.
standalone/cleanupcleanup-docker.shClean unused Docker data (images, containers, volumes).
standalone/cleanupcleanup-kernels.shRemove old kernel packages (keeping current kernel).
standalone/cleanupcleanup-logs.shClean old journald logs and rotated logs.
standalone/cleanupcleanup-temp.shClean temporary files in /tmp and /var/tmp.
standalone/cleanupcleanup-thumbnails.shClear thumbnail caches for all users.
standalone/dockerupdate-docker-compose-stacks.shPull and redeploy all Docker Compose stacks under /opt/*.
standalone/flatpakinstall-discord.shInstall Discord from Flathub.
standalone/flatpakinstall-steam.shInstall Steam from Flathub.
standalone/flatpakinstall-telegram.shInstall Telegram Desktop from Flathub.
standalone/gitgit-clone-all.shClone all public repositories from a GitHub user/profile.
standalone/gitgit-rewrite-identity.shRewrite author/committer name and email across all commits in a Git repository.
standalone/inventory/networkget-bandwidth-summary.shPer-interface link speed, duplex, carrier state, and MTU.
standalone/inventory/networkget-connectivity.shSame checks as network-summary.sh plus DNS query time and IPv6 internet reachability.
standalone/inventory/networkget-dns-info.shresolvectl status or /etc/resolv.conf, active nameservers, and search domains.
standalone/inventory/networkget-established-connections.shEstablished TCP connections with local/remote endpoints and owning process.
standalone/inventory/networkget-firewall-status.shStatus across UFW, Firewalld, nftables, and iptables — whichever are installed.
standalone/inventory/networkget-interface-statistics.shPer-interface RX/TX bytes, packets, errors, drops, and collisions.
standalone/inventory/networkget-listening-ports.shListening TCP/UDP ports with the owning process, via ss.
standalone/inventory/networkget-neighbors.shARP table (IPv4) and neighbor cache (IPv6).
standalone/inventory/networkget-network-interfaces.shPer-interface state, MAC, MTU, driver, speed, and IPv4/IPv6 addresses.
standalone/inventory/networkget-network-services.shActive state of NetworkManager, systemd-networkd/-resolved, dhcpcd, wpa_supplicant, iwd.
standalone/inventory/networkget-network-statistics.shTCP congestion control algorithm, IPv4/IPv6 forwarding, and BBR status via sysctl.
standalone/inventory/networkget-network-summary.shOne-shot pass/fail overview: gateway, DNS, internet, public IPv4/IPv6.
standalone/inventory/networkget-public-ip.shPublic IPv4/IPv6 via ipify, falling back to ifconfig.me/ifconfig.co.
standalone/inventory/networkget-routing.shIPv4/IPv6 routing tables and the default gateway/interface.
standalone/inventory/networkget-vpn-status.shWireGuard/TUN/TAP interfaces, Tailscale status, and ZeroTier status.
standalone/inventory/networkget-wifi-status.shSSID, signal, bitrate, and frequency for wireless interfaces via iw or nmcli.
standalone/inventory/systemget-cpu-info.shCPU architecture, model, core, and thread information.
standalone/inventory/systemget-directory-tree.shDisplays structural hierarchy of common server directories.
standalone/inventory/systemget-dmi-info.shSystem-level DMI/SMBIOS hardware component info.
standalone/inventory/systemget-docker-info.shDocker containers, networks, volumes, and system info.
standalone/inventory/systemget-host-info.shHostname, OS release, kernel version, and uptime.
standalone/inventory/systemget-installed-packages.shCount of installed OS packages (dpkg or rpm).
standalone/inventory/systemget-journal-errors.shRecent critical/error entries from the system journal.
standalone/inventory/systemget-kernel-log.shRecent kernel ring buffer messages (dmesg).
standalone/inventory/systemget-kernel-parameters.shKernel runtime parameters via sysctl (truncated preview).
standalone/inventory/systemget-local-users.shNon-system local user accounts from /etc/passwd.
standalone/inventory/systemget-logged-in-users.shCurrently logged-in users and recent login history.
standalone/inventory/systemget-memory-info.shSystem memory usage (RAM and swap).
standalone/inventory/systemget-nginx-info.shNginx version, compilation flags, and configuration check.
standalone/inventory/systemget-pci-devices.shPCI device inventory.
standalone/inventory/systemget-services-info.shRunning and enabled Systemd services.
standalone/inventory/systemget-storage-info.shDisk usage per mount point and block device layout.
standalone/inventory/systemget-top-processes.shTop 10 processes by CPU usage.
standalone/inventory/systemget-usb-devices.shUSB device inventory.
standalone/inventory/systemget-user-crontab.shCurrent user's crontab entries.
standalone/lspinstall-bash-language-server.shInstall bash-language-server via npm for editor/IDE LSP integration.
standalone/lspinstall-markdown-language-server.shInstall markdown-language-server via npm for editor/IDE LSP integration.
standalone/lspinstall-python-language-server.shInstall python-lsp-server (pylsp) via pipx for editor/IDE LSP integration.
standalone/maintenancecreate-swap-file.shCreate and activate a swap file of any size.
standalone/maintenancegrant-sudo.shAdd a user to the sudo group.
standalone/maintenanceset-bashrc-default.shReset ~/.bashrc to the distribution default.
standalone/maintenanceufw-firewalld-migration.shRemove UFW and replace it with Firewalld.⚠️
standalone/pipxinstall-gallery-dl.shInstall gallery-dl via pipx.
standalone/pipxinstall-spotdl.shInstall spotdl via pipx.
standalone/pipxinstall-yt-dlp.shInstall yt-dlp via pipx.
standalone/serverdeploy-filebrowser.shFile Browser web file manager via Docker.
standalone/serverdeploy-grafana.shGrafana + Prometheus + Node Exporter via Docker.
standalone/serverdeploy-nginx.shProduction Nginx + optional PHP-FPM, Grafana & Portainer proxy.
standalone/serverdeploy-portainer.shPortainer CE container management UI via Docker.
standalone/serverdeploy-ssh.shInstall & harden OpenSSH Server, optional Firewalld rule.
standalone/serverserver-bootstrap.shInitial server hardening and configuration.
standalone/showcaseshowcase-bash-qol.shDemo for the Bash QOL terminal styling.
standalone/utilitiesdiscord-attachments-dl.shDownload attachments from a Discord data export.
standalone/utilitiesdownload-java.shEclipse Temurin JDK/JRE installer (v8, 17, 21, 25).⚠️
standalone/utilitiesprompt-cli.shGemini-based CLI assistant with markdown rendering; exposed as ask.
standalone/yt-dlpyt-dlp-all-formats.shDownload every resolution tier (480p-8K) via yt-dlp.
standalone/yt-dlpyt-dlp-audio-only.shDownload audio only as MP3 via yt-dlp.
standalone/yt-dlpyt-dlp-best-format.shDownload best quality video as MP4 via yt-dlp.
workflows/deploy-serverdeploy-server.shFull-stack workflow: bootstrap → nginx → grafana → portainer from a single .env.4
workflowssetup-bash-qol.shInstall shell quality-of-life tools and configure Bash.6
workflowssetup-dev-env.shInstall a full C++/Python/PHP/Node dev environment + LSP servers in one step.11
workflowssetup-flatpak.shInstall Flatpak + Flathub + Discord, Steam, Telegram in one step.4
workflowssetup-oh-my-bash.shInstall oh-my-bash with interactive theme selection.2
workflowssetup-pipx.shInstall yt-dlp, gallery-dl, spotdl via pipx in one step.4

standalone/apt/cli/

standalone/apt/cli/install-bash-completion.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs bash-completion via apt. Programmable completion is normally auto-sourced by /etc/bash.bashrc on Debian/Ubuntu once the package is present — no manual .bashrc edit needed.

Dependencies: none

standalone/apt/cli/install-bat.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs bat via apt.

  • On Ubuntu/Debian the binary ships as batcat (to avoid a name clash

with an unrelated bat package). This script adds a bat symlink to /usr/local/bin/bat when only batcat is present, so bat works out of the box.

Dependencies: none

standalone/apt/cli/install-chafa.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs chafa via apt.

Dependencies: none

standalone/apt/cli/install-cpp.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs build-essential, gcc, g++, clang, cmake, ninja-build, gdb, lldb.

Dependencies: none

standalone/apt/cli/install-docker.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs Docker Engine (docker.io) and the Docker Compose plugin; enables and starts the service.

Dependencies: none

standalone/apt/cli/install-eza.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs eza via apt.

  • eza only reached Debian's own repos in Debian 13 (Trixie) / recent

Ubuntu. On releases where the apt package is unavailable, this script adds the official third-party repository, deb.gierens.de (https://eza.rocks / https://github.com/eza-community/eza/blob/main/INSTALL.md), signed with its published GPG key, then installs from there.

Dependencies: none

standalone/apt/cli/install-firewalld-cli.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs firewalld.

  • Enables and starts the firewalld service.
  • Note: if ufw is active, it should be disabled to avoid conflicting

netfilter rules; this script does not do that automatically.

Dependencies: none
Used by: none

standalone/apt/cli/install-flatpak.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs flatpak, adds the Flathub remote, optionally enables KDE Discover integration.

Dependencies: none

standalone/apt/cli/install-fzf.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs fzf via apt.

Dependencies: none

standalone/apt/cli/install-git.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs git via apt.

Dependencies: none

standalone/apt/cli/install-htop.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs htop via apt.

Dependencies: none
Used by: none

standalone/apt/cli/install-npm.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs nodejs, npm.

Dependencies: none

standalone/apt/cli/install-nvidia-driver.sh

Sudo: ✅ Interactive: ✅ Idempotent: ⚠️ (mostly)

Installs an NVIDIA GPU driver, either from the distro's apt repository or from a legacy/manual .run installer.

  • Usage: sudo ./install-nvidia-driver.sh --detect (auto-detects the recommended package via ubuntu-drivers or nvidia-detect), --package <nvidia-driver-XXX>, or --run <path-to-.run>
  • Blacklists the nouveau driver and refreshes initramfs before installing
  • Stops the display manager and switches to multi-user.target so X/Wayland is fully down before the driver installs or builds — asks for confirmation first
  • Warns if a process is still holding /dev/nvidia* before proceeding
  • Installs via apt-get install (package mode) or runs the .run file with --silent --dkms --no-x-check (manual mode)
  • Offers to reboot at the end, or prints how to return to graphical.target manually
⚠️ Idempotency caveat: re-running always stops the graphical session and prompts for a reboot again, even if the driver is already installed — run it from an SSH session or TTY, not from inside the graphical session it's about to stop.
Dependencies: none
Used by: none

standalone/apt/cli/install-php.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs php, php-cli, php-fpm, and common PHP extensions.

Dependencies: none

standalone/apt/cli/install-pipx.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs pipx and ensures ~/.local/bin is on PATH.

Dependencies: none

standalone/apt/cli/install-python.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs python3, python3-pip, python3-venv.

Dependencies: none

standalone/apt/cli/install-ranger.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs ranger via apt.

Dependencies: none
Used by: none

standalone/apt/cli/install-ripgrep.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs ripgrep via apt.

Dependencies: none

standalone/apt/cli/install-veracrypt-cli.sh

Sudo: ✅ Interactive: ❌ Idempotent: ⚠️ (mostly)

Installs VeraCrypt CLI (Console Only) from the official PPA.

Dependencies: none
Used by: none

standalone/apt/cli/install-virtualbox-guest-additions.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs VirtualBox Guest Additions from the distribution's apt repository.

  • Supports Debian, Ubuntu, Linux Mint, Pop!_OS, and Kali
  • Installs virtualbox-guest-x11 and virtualbox-guest-utils
  • Reminds the user to reboot to activate the additions
Dependencies: none
Used by: none

standalone/apt/cli/install-zoxide.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs zoxide via apt.

  • zoxide landed in Debian/Ubuntu repos only in recent releases

(Debian 12+, Ubuntu 22.10+). On older releases where the apt package is unavailable, this script falls back to the official upstream install script (installs to ~/.local/bin for the invoking user via SUDO_USER, or root's home if run directly as root).

Dependencies: none

standalone/apt/gui/

standalone/apt/gui/install-blender.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs Blender via apt.

Dependencies: none
Used by: none

standalone/apt/gui/install-firefox.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs Firefox via apt.

  • Uses the firefox package where available (Ubuntu's apt repos install

the Snap transitional package on stock Ubuntu; Debian ships a real deb).

  • Falls back to firefox-esr, the package name used on Debian stable

when the plain firefox package does not exist in the configured repos.

Dependencies: none
Used by: none

standalone/apt/gui/install-firewalld-gui.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs firewalld and firewall-config, its GTK graphical configuration tool.

  • Enables and starts the firewalld service.
  • Note: if ufw is active, it should be disabled to avoid conflicting

netfilter rules; this script does not do that automatically.

Dependencies: none
Used by: none

standalone/apt/gui/install-flameshot.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs Flameshot via apt.

Dependencies: none
Used by: none

standalone/apt/gui/install-ghostwriter.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs the Ghostwriter Markdown editor.

Dependencies: none

standalone/apt/gui/install-gimp.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs GIMP via apt.

Dependencies: none
Used by: none

standalone/apt/gui/install-inkscape.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs Inkscape via apt.

Dependencies: none
Used by: none

standalone/apt/gui/install-kate.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs the Kate text editor along with the official plugin collection (kate-plugins).

Dependencies: none

standalone/apt/gui/install-kdevelop.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs the KDevelop IDE.

Dependencies: none

standalone/apt/gui/install-kio-admin.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs kio-admin for Dolphin root access.

Dependencies: none
Used by: none

standalone/apt/gui/install-krusader.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs Krusader via apt.

Dependencies: none
Used by: none

standalone/apt/gui/install-obs-studio.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs OBS Studio via apt.

Dependencies: none
Used by: none

standalone/apt/gui/install-okular.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs the Okular document viewer.

Dependencies: none
Used by: none

standalone/apt/gui/install-protonvpn.sh

Sudo: ✅ Interactive: ✅ Idempotent: ⚠️ (mostly)

Installs the ProtonVPN from the official Proton apt repository.

Dependencies: none
Used by: none

standalone/apt/gui/install-qbittorrent.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs qBittorrent via apt.

Dependencies: none
Used by: none

standalone/apt/gui/install-qwinff.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs QwinFF via apt.

Dependencies: none
Used by: none

standalone/apt/gui/install-remmina.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs Remmina via apt.

Dependencies: none
Used by: none

standalone/apt/gui/install-tor-browser.sh

Sudo: ✅ Interactive: ❌ Idempotent: ⚠️ (mostly)

Installs Tor Browser via the official Tor Project apt repository.

Dependencies: none
Used by: none

standalone/apt/gui/install-veracrypt-gui.sh

Sudo: ✅ Interactive: ❌ Idempotent: ⚠️ (mostly)

Installs VeraCrypt GUI (Graphical Interface) from the official PPA.

Dependencies: none
Used by: none

standalone/apt/gui/install-virtualbox.sh

Sudo: ✅ Interactive: ❌ Idempotent: ⚠️ (mostly)

Installs VirtualBox from the official Oracle apt repository.

Dependencies: none
Used by: none

standalone/apt/gui/install-vlc.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs VLC via apt.

Dependencies: none
Used by: none

standalone/chmod/

standalone/chmod/chmod-add-x.sh

Sudo: ❌ Interactive: ✅ Idempotent: ✅ (true)

Recursively adds the execute bit on all .sh files under a given path.

  • Usage: ./chmod-add-x.sh <path>
  • No root required unless the target path requires elevated access
Dependencies: none
Used by: none

standalone/chmod/chmod-remove-x.sh

Sudo: ❌ Interactive: ✅ Idempotent: ✅ (true)

Recursively removes the execute bit from all .sh files under a given path.

  • Usage: ./chmod-remove-x.sh <path>
  • No root required unless the target path requires elevated access
Dependencies: none
Used by: none

standalone/chmod/chmod-set-644.sh

Sudo: ❌ Interactive: ✅ Idempotent: ✅ (true)

Recursively sets file permissions to 644 under a given path.

  • Usage: ./chmod-set-644.sh <path>
  • No root required unless the target path requires elevated access
Dependencies: none
Used by: none

standalone/chmod/chmod-set-755.sh

Sudo: ❌ Interactive: ✅ Idempotent: ✅ (true)

Recursively sets file permissions to 755 under a given path.

  • Usage: ./chmod-set-755.sh <path>
  • No root required unless the target path requires elevated access
Dependencies: none
Used by: none

standalone/cleanup/

standalone/cleanup/cleanup-apt.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Runs apt-get autoremove, autoclean, and clean to free disk space.

Dependencies: none
Used by: none

standalone/cleanup/cleanup-browser-brave.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Stops Brave and clears cookies, history, cache, etc.

Dependencies: none
Used by: none

standalone/cleanup/cleanup-browser-chrome.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Stops Chrome and clears cookies, history, cache, etc.

Dependencies: none
Used by: none

standalone/cleanup/cleanup-browser-chromium.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Stops Chromium and clears cookies, history, cache, etc.

Dependencies: none
Used by: none

standalone/cleanup/cleanup-browser-edge.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Stops Edge and clears cookies, history, cache, etc.

Dependencies: none
Used by: none

standalone/cleanup/cleanup-browser-firefox.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Stops Firefox and clears cookies, history, cache, session data.

Dependencies: none
Used by: none

standalone/cleanup/cleanup-browser-opera.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Stops Opera and clears cookies, history, cache, etc.

Dependencies: none
Used by: none

standalone/cleanup/cleanup-browser-vivaldi.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Stops Vivaldi and clears cookies, history, cache, etc.

Dependencies: none
Used by: none

standalone/cleanup/cleanup-docker.sh

Sudo: ✅ Interactive: ✅ Idempotent: ✅ (true)

Prunes Docker system with interactive confirmations.

Dependencies: none
Used by: none

standalone/cleanup/cleanup-kernels.sh

Sudo: ✅ Interactive: ✅ Idempotent: ✅ (true)

Detects and optionally removes old Linux kernels.

Dependencies: none
Used by: none

standalone/cleanup/cleanup-logs.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Vacuums journald and removes rotated logs older than 7 days.

Dependencies: none
Used by: none

standalone/cleanup/cleanup-temp.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Removes files older than 7 days from temporary directories.

Dependencies: none
Used by: none

standalone/cleanup/cleanup-thumbnails.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Removes thumbnail cache from all home directories.

Dependencies: none
Used by: none

standalone/docker/

standalone/docker/update-docker-compose-stacks.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Updates and redeploys every Docker Compose stack found under /opt/*.

  • Lists currently running containers before starting
  • Detects docker-compose.yml, compose.yml, compose.yaml, and docker-compose.yaml
  • Runs docker compose pull followed by docker compose up -d for each stack
  • Detects whether new images were actually pulled
  • Skips directories with no compose file or where the pull fails
  • Prints a final summary of updated, unchanged, and skipped stacks
Dependencies: none
Used by: none

standalone/flatpak/

standalone/flatpak/install-discord.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Installs Discord from Flathub.

Dependencies: none

standalone/flatpak/install-steam.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Installs Steam from Flathub.

Dependencies: none

standalone/flatpak/install-telegram.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Installs Telegram Desktop from Flathub.

Dependencies: none

standalone/git/

standalone/git/git-clone-all.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Clones every public repository belonging to a GitHub user or organization.

  • Usage: ./git-clone-all.sh <github-username-or-url> [target-dir]
  • Accepts either a bare username or a full github.com/<user> URL
  • Paginates through the GitHub API to fetch all repositories
  • Clones each repo into the target directory (default ./repos)
  • Skips repositories that are already cloned locally
  • No root required
Dependencies: none
Used by: none

standalone/git/git-rewrite-identity.sh

Sudo: ❌ Interactive: ✅ Idempotent: ❌ (false)

Uses git-filter-repo to replace a given author/committer name and/or email with new values across the entire commit history of a repository. Useful when commits were made under an OS-level username instead of the intended account identity. Rewrites all refs; commit hashes change. The 'origin' remote is removed by git-filter-repo as a safety measure and is automatically re-added at the end if it was present.

Dependencies: none
Used by: none

standalone/inventory/network/

standalone/inventory/network/get-bandwidth-summary.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script — does not modify system configuration. Works without root; colored output degrades gracefully to plain text when not attached to a terminal.

  • Per-interface link speed, duplex, carrier state, and MTU
Dependencies: none
Used by: none

standalone/inventory/network/get-connectivity.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script — does not modify system configuration. Works without root; colored output degrades gracefully to plain text when not attached to a terminal.

  • Same checks as network-summary.sh plus DNS query time and IPv6 internet reachability
Dependencies: none
Used by: none

standalone/inventory/network/get-dns-info.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script — does not modify system configuration. Works without root; colored output degrades gracefully to plain text when not attached to a terminal.

  • resolvectl status or /etc/resolv.conf, active nameservers, and search domains
Dependencies: none
Used by: none

standalone/inventory/network/get-established-connections.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script — does not modify system configuration. Works without root; colored output degrades gracefully to plain text when not attached to a terminal.

  • Established TCP connections with local/remote endpoints and owning process
Running as sudo gives fuller process detail on this script; it still works without root, but with a warning and reduced detail.
Dependencies: none
Used by: none

standalone/inventory/network/get-firewall-status.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script — does not modify system configuration. Works without root; colored output degrades gracefully to plain text when not attached to a terminal.

  • Status across UFW, Firewalld, nftables, and iptables — whichever are installed
Running as sudo gives fuller process detail on this script; it still works without root, but with a warning and reduced detail.
Dependencies: none
Used by: none

standalone/inventory/network/get-interface-statistics.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script — does not modify system configuration. Works without root; colored output degrades gracefully to plain text when not attached to a terminal.

  • Per-interface RX/TX bytes, packets, errors, drops, and collisions from /sys/class/net
Dependencies: none
Used by: none

standalone/inventory/network/get-listening-ports.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script — does not modify system configuration. Works without root; colored output degrades gracefully to plain text when not attached to a terminal.

  • Listening TCP/UDP ports with the owning process, via ss
Running as sudo gives fuller process detail on this script; it still works without root, but with a warning and reduced detail.
Dependencies: none
Used by: none

standalone/inventory/network/get-neighbors.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script — does not modify system configuration. Works without root; colored output degrades gracefully to plain text when not attached to a terminal.

  • ARP table (IPv4) and neighbor cache (IPv6)
Dependencies: none
Used by: none

standalone/inventory/network/get-network-interfaces.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script — does not modify system configuration. Works without root; colored output degrades gracefully to plain text when not attached to a terminal.

  • Per-interface state, MAC, MTU, driver, speed, and IPv4/IPv6 addresses
Dependencies: none
Used by: none

standalone/inventory/network/get-network-services.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script — does not modify system configuration. Works without root; colored output degrades gracefully to plain text when not attached to a terminal.

  • Active state of NetworkManager, systemd-networkd/-resolved, dhcpcd, wpa_supplicant, iwd
Dependencies: none
Used by: none

standalone/inventory/network/get-network-statistics.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script — does not modify system configuration. Works without root; colored output degrades gracefully to plain text when not attached to a terminal.

  • TCP congestion control algorithm, IPv4/IPv6 forwarding, and BBR status via sysctl
Dependencies: none
Used by: none

standalone/inventory/network/get-network-summary.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script — does not modify system configuration. Works without root; colored output degrades gracefully to plain text when not attached to a terminal.

  • One-shot pass/fail overview: gateway, DNS, internet, public IPv4/IPv6
Dependencies: none
Used by: none

standalone/inventory/network/get-public-ip.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script — does not modify system configuration. Works without root; colored output degrades gracefully to plain text when not attached to a terminal.

  • Public IPv4/IPv6 via ipify, falling back to ifconfig.me/ifconfig.co
Dependencies: none
Used by: none

standalone/inventory/network/get-routing.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script — does not modify system configuration. Works without root; colored output degrades gracefully to plain text when not attached to a terminal.

  • IPv4/IPv6 routing tables and the default gateway/interface
Dependencies: none
Used by: none

standalone/inventory/network/get-vpn-status.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script — does not modify system configuration. Works without root; colored output degrades gracefully to plain text when not attached to a terminal.

  • WireGuard/TUN/TAP interfaces, Tailscale status, and ZeroTier status
Dependencies: none
Used by: none

standalone/inventory/network/get-wifi-status.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script — does not modify system configuration. Works without root; colored output degrades gracefully to plain text when not attached to a terminal.

  • SSID, signal, bitrate, and frequency for wireless interfaces via iw or nmcli
Dependencies: none
Used by: none

standalone/inventory/system/

standalone/inventory/system/get-cpu-info.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script. Works without root.

  • Collects architecture, model name, core/thread counts via lscpu.
Dependencies: none
Used by: none

standalone/inventory/system/get-directory-tree.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script. Works without root.

  • Displays a 2-level deep tree for /srv, /opt, and /var/www.
Running as sudo prevents "Permission denied" errors in restricted folders.
Dependencies: none
Used by: none

standalone/inventory/system/get-dmi-info.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script.

  • Collects system manufacturer/model/serial info via dmidecode -t system.
Running as sudo is required; dmidecode returns no data for non-root users.
Dependencies: none
Used by: none

standalone/inventory/system/get-docker-info.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script.

  • Collects docker ps, network ls, volume ls, and docker info.
Running as sudo is required unless the user is part of the docker group.
Dependencies: none
Used by: none

standalone/inventory/system/get-host-info.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script — does not modify system configuration. Works without root.

  • Collects hostnamectl, /etc/os-release, uname -a, and uptime.
Dependencies: none
Used by: none

standalone/inventory/system/get-installed-packages.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script. Works without root.

  • Counts installed packages via dpkg-query (Debian/Ubuntu) or rpm fallback.
Dependencies: none
Used by: none

standalone/inventory/system/get-journal-errors.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script.

  • Collects the last 15 critical/error priority events via journalctl -p 3 -xb.
Running as sudo is required to read full system journal logs.
Dependencies: none
Used by: none

standalone/inventory/system/get-kernel-log.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script — does not modify system configuration.

  • Collects the last 20 lines of dmesg.
Running as sudo is required on systems with kernel.dmesg_restrict enabled.
Dependencies: none
Used by: none

standalone/inventory/system/get-kernel-parameters.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script — does not modify system configuration. Works without root; some restricted parameters may be hidden.

  • Collects the first 20 lines of sysctl -a for a quick preview.
Dependencies: none
Used by: none

standalone/inventory/system/get-local-users.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script. Works without root.

  • Lists local users with UID >= 1000 (excluding nobody) from /etc/passwd.
Dependencies: none
Used by: none

standalone/inventory/system/get-logged-in-users.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script. Works without root.

  • Collects currently logged-in users (w) and the last 10 logins (last).
Dependencies: none
Used by: none

standalone/inventory/system/get-memory-info.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script. Works without root.

  • Collects RAM and swap usage via free -h.
Dependencies: none
Used by: none

standalone/inventory/system/get-nginx-info.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script.

  • Collects nginx -V and checks config syntax.
Running as sudo is required to read SSL certificates or specific config files during nginx -t.
Dependencies: none
Used by: none

standalone/inventory/system/get-pci-devices.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script. Works without root.

  • Collects the PCI device list via lspci.
Dependencies: none
Used by: none

standalone/inventory/system/get-services-info.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script. Works without root.

  • Collects currently running services and enabled systemd units.
Dependencies: none
Used by: none

standalone/inventory/system/get-storage-info.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script. Works without root.

  • Collects filesystem usage via df -h and block device layout via lsblk.
Dependencies: none
Used by: none

standalone/inventory/system/get-top-processes.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script. Works without root.

  • Collects the top 10 processes by CPU usage via ps aux --sort=-%cpu.
Dependencies: none
Used by: none

standalone/inventory/system/get-usb-devices.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script. Works without root.

  • Collects the USB device list via lsusb.
Dependencies: none
Used by: none

standalone/inventory/system/get-user-crontab.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Read-only status and diagnostic script.

  • Collects the crontab entries for the current user via crontab -l.
Running as sudo reads root's crontab instead of the invoking user's.
Dependencies: none
Used by: none

standalone/lsp/

standalone/lsp/install-bash-language-server.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Installs bash-language-server via npm into ~/.local/npm; adds to ~/.bashrc.

  • Idempotent — uses a marker block in ~/.bashrc and skips installation if the server is already present
Dependencies: none

standalone/lsp/install-markdown-language-server.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs markdown-language-server via npm into ~/.local/npm; adds to ~/.bashrc.

  • Idempotent — uses a marker block in ~/.bashrc and skips installation if the server is already present
  • Must be run as root so it can resolve the real user's home directory via SUDO_USER
Dependencies: none

standalone/lsp/install-python-language-server.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Installs python-lsp-server (pylsp) for the current user, with all optional providers (Rope, Pyflakes, McCabe, pycodestyle, pydocstyle, autopep8, YAPF) enabled via the [all] extra.

  • Installs via pipx
  • Adds ~/.local/bin to PATH in .bashrc and .profile
  • Idempotent — skips installation if pylsp is already available
Dependencies: none

standalone/maintenance/

standalone/maintenance/create-swap-file.sh

Sudo: ✅ Interactive: ✅ Idempotent: ✅ (true)

Creates and activates a swap file at /swapfile.

  • Usage: ./create-swap-file.sh <size> (e.g. 4G, 8192M, 2GiB)
  • Accepts G, GB, GiB, M, MB, MiB, T, TB, TiB units
  • Detects and safely handles an existing swap file with a confirmation prompt
  • Enables the new swap immediately and persists it via /etc/fstab
Dependencies: none
Used by: none

standalone/maintenance/grant-sudo.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Adds an existing user to the sudo group.

  • Usage: ./grant-sudo.sh <username> or run as sudo (inherits SUDO_USER automatically)
  • Validates that the target user exists and is not root
Dependencies: none
Used by: none

standalone/maintenance/set-bashrc-default.sh

Sudo: ❌ Interactive: ✅ Idempotent: ✅ (true)

Restores ~/.bashrc to the distro default.

  • Backs up the current ~/.bashrc with a timestamp before overwriting
  • Restores the file from /etc/skel/.bashrc
  • Requires explicit confirmation before making changes
Dependencies: none
Used by: none

standalone/maintenance/ufw-firewalld-migration.sh

Sudo: ✅ Interactive: ❌ Idempotent: ⚠️ (mostly)

Replaces UFW with Firewalld on Debian/Ubuntu systems.

  • Disables and removes UFW
  • Installs Firewalld and enables it on boot
  • Opens SSH in the default zone before finishing so the session is not dropped
⚠️ Idempotency caveat: safe to run on a system that still has UFW, but a no-op if UFW is already gone and Firewalld is already running — it will not reconfigure an existing Firewalld setup.
Dependencies: none
Used by: none

standalone/pipx/

standalone/pipx/install-spotdl.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Installs spotdl.

Dependencies: none

standalone/pipx/install-yt-dlp.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Installs yt-dlp.

Dependencies: none

standalone/server/

standalone/server/deploy-filebrowser.sh

Sudo: ✅ Interactive: ✅ Idempotent: ✅ (true)

Deploys File Browser — a lightweight web UI for browsing and managing files on the server.

  • Managed via Docker Compose, using the official filebrowser/filebrowser image
  • Bootstraps the database and admin account via the filebrowser CLI before first start, instead of relying on the image's auto-generated one-time password
  • Uses a dedicated secret for the admin password
  • Persists data under /opt/filebrowser-stack/
  • Served files live under /opt/filebrowser-stack/srv/
Default binding: 127.0.0.1:8080 — use deploy-nginx.sh to expose it externally.

Change the default admin password immediately after first login.
Recommended for Debian 12/13 and Ubuntu 22.04/24.04 LTS.
Dependencies: none
Used by: none

standalone/server/deploy-grafana.sh

Sudo: ✅ Interactive: ✅ Idempotent: ✅ (true)

Deploys a full observability stack: Grafana + Prometheus + Node Exporter.

  • Managed via Docker Compose
  • Uses a dedicated secret for the Grafana admin password
  • Pre-configures Prometheus to scrape Node Exporter metrics
  • Attempts to auto-import the Node Exporter Full dashboard (ID 19937)
  • Persists data under /opt/grafana-stack/
Default binding: 127.0.0.1:3000 — use deploy-nginx.sh to expose it externally.

Change the default admin password immediately after first login.
Recommended for Debian 12/13 and Ubuntu 22.04/24.04 LTS.
Dependencies: none

standalone/server/deploy-nginx.sh

Sudo: ✅ Interactive: ✅ Idempotent: ✅ (true)

Deploys a hardened, production-ready Nginx web server.

  • Installs Nginx with optional PHP-FPM integration
  • Generates a clean virtual host with security headers and other baseline best practices
  • Optionally installs avahi-daemon for mDNS / .local hostname resolution on the LAN
  • Can add reverse proxies for Grafana at /grafana and Portainer at /portainer
  • Configures Firewalld for HTTP, HTTPS, and mDNS
  • Creates a clean default index.html
Recommended for Debian 12/13 and Ubuntu 22.04/24.04 LTS.
Dependencies: none

standalone/server/deploy-portainer.sh

Sudo: ✅ Interactive: ✅ Idempotent: ✅ (true)

Deploys Portainer CE — a lightweight web UI for managing Docker containers.

  • Managed via Docker Compose
  • Uses a dedicated secret for the Portainer admin password
  • Stores data under /opt/portainer-stack/
Default binding: 127.0.0.1:9000 — use deploy-nginx.sh to expose it externally.

Change the default admin password immediately after first login.
Recommended for Debian 12/13 and Ubuntu 22.04/24.04 LTS.
Dependencies: none

standalone/server/deploy-ssh.sh

Sudo: ✅ Interactive: ✅ Idempotent: ✅ (true)

Installs and enables OpenSSH Server, with optional firewall configuration.

  • Installs openssh-server and enables the ssh service
  • Optionally installs Firewalld and opens the SSH service in the public zone
  • Validates sshd configuration with sshd -t before restarting the service — aborts on a bad config instead of dropping the session
  • Prints a summary of service status, startup state, and firewall configuration
Recommended for Debian 12/13 and Ubuntu 22.04/24.04 LTS.
Dependencies: none
Used by: none

standalone/server/server-bootstrap.sh

Sudo: ✅ Interactive: ✅ Idempotent: ✅ (true)

Initial hardening and configuration for a fresh server.

  • Installs essential admin tools such as htop, ranger, git, curl, wget, and more
  • Offers optional hardware diagnostic utilities
  • Creates and configures a sudo-enabled user account
  • Sets up Firewalld with sensible default rules
  • Configures Fail2Ban for SSH brute-force protection
  • Prints a full system summary at the end
Dependencies: none

standalone/showcase/

standalone/showcase/showcase-bash-qol.sh

Sudo: ❌ Interactive: ✅ Idempotent: ✅ (true)

A standalone demonstration of the Bash QOL terminal styling.

  • Creates a temporary sandbox with sample files
  • Shows off formatted output and terminal UI behavior
  • Useful as a preview before committing to bash-qol.sh
  • No root required
Dependencies: none
Used by: none

standalone/utilities/

standalone/utilities/discord-attachments-dl.sh

Sudo: ✅ Interactive: ✅ Idempotent: ✅ (true)

Downloads media attachments from a local Discord data export.

  • Scans all c*/ channel folders inside the export directory
  • Parses messages.json using jq to extract attachment URLs
  • Downloads files to an attachments/ subdirectory per channel
  • Skips already-downloaded files
  • Logs failed downloads for review
Dependencies: none
Used by: none

standalone/utilities/download-java.sh

Sudo: ✅ Interactive: ✅ Idempotent: ⚠️ (mostly)

Downloads and installs multiple Eclipse Temurin (Adoptium) JDK/JRE builds.

  • Supported versions: 8, 17, 21, 25
  • Downloads both JDK and JRE for each version
  • Installs to /opt/java/temurin/
  • Updates shell configuration so the installed Java versions can be used easily
⚠️ Idempotency caveat: hardcodes x64 in the Adoptium API URL — will fail on ARM. Re-running will re-download and overwrite existing installations without prompting.
Dependencies: none
Used by: none

standalone/utilities/prompt-cli.sh

Sudo: ✅ Interactive: ✅ Idempotent: ✅ (true)

A terminal-based assistant client for the Google Gemini API with markdown rendering.

  • Usage: ask [--model NAME] <prompt text>
  • Self-installs into ~/.local/bin/ on first run
  • Stores the API key in ~/.config/prompt-cli/keys.env
  • Renders markdown directly in the terminal
  • Includes --setup, --reset, --uninstall, and --help
  • Uses the ask command name because prompt is already taken by oh-my-bash
Dependencies: none
Used by: none

standalone/yt-dlp/

standalone/yt-dlp/yt-dlp-all-formats.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

All three scripts share the same conventions: they install jq and wget if missing, use Firefox cookies and a Node.js JS runtime for restricted videos, and retry up to 100 times with randomized sleep intervals. Output filenames always include uploader, upload date, title, and video ID. No root required.

  • Usage: ./yt-dlp-all-formats.sh <URL> [extra yt-dlp options]
  • Targets 480p, 720p, 1080p, 1440p, 2160p (4K), and 4320p (8K) with bestaudio[ext=m4a]
  • Falls back to best[ext=mp4] / best if no matching tier is available
  • Output filename also includes the resolution
Dependencies: none
Used by: none

standalone/yt-dlp/yt-dlp-audio-only.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

All three scripts share the same conventions: they install jq and wget if missing, use Firefox cookies and a Node.js JS runtime for restricted videos, and retry up to 100 times with randomized sleep intervals. Output filenames always include uploader, upload date, title, and video ID. No root required.

  • Usage: ./yt-dlp-audio-only.sh <URL> [extra yt-dlp options]
  • Extracts audio at the best available quality (--audio-quality 0) and converts to MP3
Dependencies: none
Used by: none

standalone/yt-dlp/yt-dlp-best-format.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

All three scripts share the same conventions: they install jq and wget if missing, use Firefox cookies and a Node.js JS runtime for restricted videos, and retry up to 100 times with randomized sleep intervals. Output filenames always include uploader, upload date, title, and video ID. No root required.

  • Usage: ./yt-dlp-best-format.sh <URL> [extra yt-dlp options]
  • Prefers bestvideo[ext=mp4]+bestaudio[ext=m4a], falling back to the best overall format
Dependencies: none
Used by: none

workflows/

workflows/setup-bash-qol.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs shell quality-of-life tools and configures the current user's Bash environment.

  • Runs install-bash-completion.sh, install-fzf.sh, install-zoxide.sh,

install-ripgrep.sh, install-bat.sh, install-eza.sh from standalone/apt/cli/

  • Updates ~/.bashrc and ~/.inputrc with a managed block
  • Adds aliases, completion tweaks, and history improvements
  • Designed to be re-run safely
  • Located in workflows/
Modifies shell startup files such as ~/.bashrc.
Used by: none

workflows/setup-dev-env.sh

Sudo: ✅ Interactive: ❌ Idempotent: ✅ (true)

Installs a complete development environment by chaining scripts from apt/ and lsp/.

  • Runs in order: install-cpp.sh, install-python.sh, install-php.sh, install-kate.sh, install-kdevelop.sh, install-npm.sh, install-ghostwriter.sh, install-docker.sh
  • Then installs install-bash-language-server.sh, install-markdown-language-server.sh and install-python-language-server.sh
  • Each subscript is executed individually so a failure is isolated and traceable
  • Located in workflows/
Used by: none

workflows/setup-flatpak.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Installs Flatpak and a standard set of GUI applications in one step.

  • Runs in order: install-flatpak.sh (Flatpak + Flathub), install-telegram.sh, install-discord.sh, install-steam.sh
  • Located in workflows/
Used by: none

workflows/setup-oh-my-bash.sh

Sudo: ✅ Interactive: ✅ Idempotent: ✅ (true)

Installs oh-my-bash and lets the user pick a theme via an interactive preview.

  • Runs install-chafa.sh and install-git.sh from standalone/apt/cli/ for dependencies
  • Uses theme screenshots rendered in the terminal with chafa
  • Supports both upstream installation and a manual integration mode
  • Preserves existing Bash customizations in manual mode
  • Updates only the managed block when re-run
  • Located in workflows/
Modifies shell startup files such as ~/.bashrc.
Used by: none

workflows/setup-pipx.sh

Sudo: ❌ Interactive: ❌ Idempotent: ✅ (true)

Installs a curated set of Python CLI tools via pipx in one step.

  • Runs in order: install-pipx.sh, install-gallery-dl.sh, install-yt-dlp.sh, install-spotdl.sh
  • Located in workflows/
Used by: none

workflows/deploy-server/

workflows/deploy-server/deploy-server.sh

Sudo: ✅ Interactive: ✅ Idempotent: ❌ (false)

Orchestrates a full server deployment by running four scripts in sequence from a single .env config file.

  • Validates all .env variables before starting — fails fast with clear errors
  • Pipes answers to each subscript via printf, safely handling special characters in credentials
  • Handles sudo user creation between the bootstrap and Nginx steps
  • Prints a deployment plan before running and confirms before proceeding
  • Located in workflows/deploy-server/ alongside its .env.example config template
Designed for fresh deployments only — re-running on an existing system breaks prompt ordering in the subscripts.
Used by: none

Generated by generate-docs.py on 2026-07-21 05:10 UTC · 129 scripts documented.