Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Linux Bootstrap

This is how I set up a fresh Zorin OS install for development. It automates the packages, tools, desktop apps, and GNOME/Zorin tweaks I want on a new machine.

You're welcome to fork this repo, copy parts of it, or use it however you like — no permission needed.

Requirements

  • Zorin OS or another Ubuntu-based distro
  • A normal user account with sudo access
  • Internet connection

Quick start

Run as your normal user — not with sudo ./install.sh:

git clone https://github.com/josephcorbett/linux-bootstrap.git
cd linux-bootstrap
./install.sh

install.sh prints the detected distro, warns on non-Ubuntu/Zorin systems, then runs each script in order. After it finishes, log out or reboot so Docker group membership takes effect.

What it installs

Category Details
Base tools Git, build tools, curl, jq, ripgrep, fd, htop, btop, shellcheck, GNOME tweak tools
.NET SDK 8, 9, and 10 (APT first; install-script fallback for SDK 10 if needed)
Node.js Node 22 via nvm v0.40.3
Docker Official Docker Engine packages from Docker's APT repository
Database PostgreSQL (APT) and Beekeeper Studio (official APT repository)
Desktop apps Opera, Discord, Slack (snap); LibreOffice, GitHub CLI, and Cursor (APT)
Desktop settings Zorin taskbar layout and behavior via gsettings

How it works

install.sh          # preflight checks, then orchestrates everything
├── scripts/base.sh
├── scripts/dotnet.sh
├── scripts/node.sh
├── scripts/docker.sh
├── scripts/postgres.sh
├── scripts/apps.sh
└── scripts/desktop.sh

Each script is plain Bash, uses set -euo pipefail, and is safe to re-run on its own:

./scripts/docker.sh

Shared helpers live in scripts/common.sh: package/snap install checks, APT source detection, signing-key setup, and idempotent shell-config line appends.

Notable choices

Docker — Installs the official docker-ce packages. Removes conflicting distro packages (docker.io, podman-docker, etc.) before setup. Does not delete existing images, containers, or /var/lib/docker.

Beekeeper Studio — Uses Beekeeper's official Debian repository so apt upgrade can update it normally.

Opera — Snap only, by design. The .deb build has had media codec issues on Zorin, and the Flatpak build caused NordPass browser-extension autofill problems. Conflicting apt/flatpak installs are removed first.

Cursor — Resolves the current Linux .deb URL from Cursor's official download API, installs it with apt, and cleans up the temporary file. If the API is unavailable, the script prints a manual fallback link.

.NET — SDK 8, 9, and 10 are installed through APT when available. SDK 10 falls back to dotnet-install.sh into the system dotnet directory so all versions appear in one dotnet --list-sdks listing. DOTNET_ROOT is not modified.

Zorin taskbardesktop.sh sets portable taskbar behavior and a global panel size. Per-monitor panel settings are intentionally omitted so the bootstrap works on both laptops and multi-monitor desktops. On systems without the Zorin taskbar schema, those steps are skipped.

Customizing

  • Add or remove packages in scripts/base.sh
  • Add desktop apps in scripts/apps.sh
  • Adjust taskbar settings in scripts/desktop.sh
  • Comment out steps in install.sh to skip them

CI

GitHub Actions runs ShellCheck on install.sh and every script under scripts/ on push and pull request.

Notes

  • Docker — Log out and back in (or reboot) before running Docker without sudo.
  • Non-Zorin distros — The bootstrap warns and continues; some steps may not apply.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages