A comprehensive automated setup script for Ubuntu/Debian-based Linux distributions that installs and configures essential development tools, applications, and fonts.
- System Tools: Essential utilities and development packages
- Containerization: Docker and Docker Compose
- Programming Languages: Python, Rust, C/C++, Go, Java
- Package Managers: Snap, Flatpak
- Applications: Browsers, editors, media players, and productivity tools
- Fonts: Automatic font installation with type detection
- AI Models: Ollama with pre-configured language models
# Clone the repository
git clone <repository-url>
cd linux_setup_script
# Make the script executable
chmod +x setup.sh
# Run the setup
./setup.sh
The script uses boolean variables to control what gets installed. Edit the configuration section in setup.sh
:
# System Components
INSTALL_SYSTEM_TOOLS=true
INSTALL_CONTAINERIZATION=true
INSTALL_PROGRAMMING_LANGUAGES=true
# Applications
INSTALL_BRAVE=true
INSTALL_VSCODE=true
INSTALL_SPOTIFY=true
# ... and many more
- Visual Studio Code (Official Builds form Microsoft)
- VSCodium (FOSS alternative to Visual Studio Code)
- Docker (Containerization platform)
- Programming language toolchains (Python, Rust, Go, Java, C/C++)
- Node.js (JavaScript runtime environment)
- HUGO (Static site generator)
- Brave Browser (Privacy-focused browser)
- LibreWolf (Hardened Firefox fork with enhanced privacy)
- Bitwarden (Password manager)
- ONLYOFFICE Desktop Editors (Office suite)
- Filezilla (FTP client)
- Texmaker (LaTeX editor)
- Spotify (Music streaming service)
- VLC (Media player)
- MultiMC (Minecraft launcher)
- VeraCrypt (File & disk encryption)
- Mullvad VPN (VPN service)
- LocalSend (Cross platform file transfer tool (alternative to AirDrop))
- JDownloader (Download manager)
The script supports automatic font installation from Google Fonts and direct zip downloads. Fonts are configured in the FONTS
array:
FONTS=(
"Lato|https://fonts.google.com/download?family=Lato"
"Myriad Pro|https://font.download/dl/font/myriad-pro.zip"
)
Supported font formats:
- TTF files →
/usr/share/fonts/truetype/{font-name}/
- OTF/TTC files →
/usr/share/fonts/opentype/{font-name}/
Pre-configured Ollama models for local AI:
AI_MODELS=(
"gemma3:1b"
"gemma3:4b"
"llama3.1:8b"
)
The script installs and configures multiple package managers:
- APT: System packages and repositories
- Snap: Universal Linux packages
- Flatpak: Sandboxed applications
- Ubuntu 20.04+ or Debian-based distribution
- Internet connection for downloads
- Sudo privileges
- At least 5GB free disk space
The script uses different installation methods based on the application:
- APT repositories: System packages and officially supported apps
- GitHub releases: Latest versions of applications like Obsidian, LocalSend
- Snap packages: Universal Linux applications
- Flatpak: Sandboxed applications like JDownloader
- Direct downloads: Specialized installers and fonts
All installation activities are logged with colored output:
- Green: Success messages
- Yellow: Warnings and skipped items
- Red: Errors
- Blue: Information
To add new applications:
- Add a configuration variable in the appropriate section
- Create an installation function following the existing patterns
- Add the function call to the relevant installation section
For fonts, simply add entries to the FONTS
array using the format:
"Font Display Name|Download URL"
Contributions are welcome! Please ensure new applications follow the existing patterns and include proper error handling.
This project is licensed under the MIT License - see the LICENSE file for details.