Automated post-installation script for Ubuntu.
Configure, harden, and optimize your system in one command.
Click to collapse/expand
This is a post-installation automation script for Ubuntu, designed to apply my complete system setup in one shot โ from hardening to theming, including essential software, configurations, and privacy fixes.
โ๏ธ Note: This script is still under active development โ far from a final version. Many features and improvements are still to come. Use it as a solid starting point, but expect updates and expansions.
Originally developed on Ubuntu 23.10 (Mantic Minotaur), but also tested and running smoothly on Ubuntu 24.04 (Noble Numbat).
Since it relies on standard tools and GNOME GSettings, it should work on other Ubuntu or GNOME-based distributions โ though official support and validation is currently for Ubuntu 23.10.
โ ๏ธ If you use this script on other versions, feel free to report issues or submit corrections via pull requests.
- โ๏ธ Fast, secure, and reproducible setup โ focused on privacy, performance, minimalism.
- ๐ Dark-themed, optimized GNOME desktop experience.
- ๐ System hardening for personal/pro use: USBGuard, disable unused services, clean legacy tools.
- ๐ ๏ธ Full environment automation:
- ZSH + Oh My Zsh + Powerlevel10k.
- Essential plugins and aliases.
- GNOME and terminal customizations.
โก๏ธ A fully optimized, secured, and ready-to-use Ubuntu system โ with zero manual intervention.
Because I'm detail-oriented (some might say perfectionist, I prefer carefully crafted), everything must be set exactly as I want: Appearance, privacy, usability, security, and performance.
I built this script to ensure a reproducible, optimized, and efficient system, every time.
- ๐ฆ System & Security Setup
- โ System update & upgrade (apt update, full-upgrade, dist-upgrade, autoclean, autoremove)
- โ Firewall (UFW) activation & configuration
- ๐ฆ System Configuration (GNOME & Ubuntu Desktop)
- โ Theme configuration (Dark mode, GTK theme preference)
- โ Desktop appearance settings (background, color scheme)
- โ Dash-to-Dock and icons behavior (position, size, mode)
- โ Privacy settings (disable telemetry, connectivity checks, location, file history, trash auto-clean)
- โ Screen lock & idle settings (delay, lock-on-idle)
- โ Sound settings (mute system sound and input by default)
- โ
Power & performance optimization
- Power profile to "performance"
- Disable sleep after timeout
- Set idle dimming and timeout behaviors
- โ Battery percentage display & night light activation
- โ Keyboard layout settings (add French AZERTY with fallback US)
- โ Calendar and clock enhancements (date, weekday, week numbers)
- โ
File manager (Nautilus) settings
- Hidden files visible
- "Delete permanently" and "Create Link" in context menu
- Tree view, recursive search, thumbnails always
- โ
GNOME Terminal customization
- Colors, theme, transparency, profile renaming to "root"
- โ GNOME Shell favorites setup (default apps pinned to dock)
- โ
Text Editor (Gedit/Builder-like) settings
- Line numbers, right margin, dark theme, disable spellcheck, wrapping, grid, highlight current line
- ๐ฆ System Hardening & Security
- โ Disable root account (lock password)
- โ Install USBGuard (for USB device control)
- โ Disable unused services (NFS, FTP, SMTP, etc.)
- โ Remove dangerous or obsolete packages (telnet, rsh, ldap-utils, etc.)
- ๐ฆ Application Installation
- โ APT software installation (list of essential tools: Nala, Vim, Zulucrypt, KeePassXC, RSSGuard, Python3, Zsh, etc.)
- โ Snap apps installation (Obsidian, XMind, LSD)
- โ Mullvad VPN installation via URL (.deb package)
- โ Refresh snap packages
- ๐ฆ Firefox Configuration
- โ Full cleanup of Firefox profiles
- โ Creation of a root profile
- โ Automatic launch/close of Firefox to initialize
- โ Copying custom user.js config from local file or remote (possible improvement)
- ๐ฆ Dev & CLI Tools Configuration
- โ SpaceVim installation for Vim/Neovim as IDE
- โ Nerd Fonts installation (monospace fonts for terminal and editor)
- โ Oh-My-Zsh installation (for advanced Zsh management)
- โ
Zsh customization:
- Powerlevel10k theme installation and activation
- Plugins installation (autosuggestions, syntax-highlighting, completions)
- Shell switching to zsh and back (smart detection)
- Add advanced Zsh plugins (via update_zsh_plugins):
- git, docker, emoji, taskwarrior, kubectl, aws, terraform, etc.
- โ Add custom aliases (via update_zsh_aliases): lots of productivity/pen-testing/daily-use aliases
- โ Copy .p10k.zsh if exists (Powerlevel10k config)
Disclaimer: Developed and officially tested on Ubuntu 23.10 (Mantic Minotaur). Also successfully tested on Ubuntu 24.04 (Noble Numbat). Compatibility with other versions is possible but not guaranteed or officially supported.
- Go to GitHub repo.
- Click
<> Code
โDownload ZIP
. - Extract the archive to your desired location.
Make sure the script is executable:
chmod +x ubuntu-post-install.sh
Then run it directly:
./ubuntu-post-install.sh
โ ๏ธ Note: The script must be run with a user that has sudo rights. It will request administrator privileges automatically at start.
We truly appreciate and welcome community involvement. Your contributions, feedback, and suggestions play a crucial role in improving the project for everyone. If you're interested in contributing or have ideas for enhancements, please feel free to open an issue or submit a pull request on our GitHub repository. Every contribution, no matter how big or small, is highly valued and greatly appreciated!
Explore the star history of this project and see how it has evolved over time:
Your support is greatly appreciated. We're grateful for every star! Your backing fuels our passion. โจ
This project is licensed under the GNU Affero General Public License, Version 3.0. For more details, please refer to the LICENSE file in the repository: Read the license on GitHub