A powerful and intuitive setup builder for Ubuntu systems. This toolkit provides a modular approach to system configuration and software installation.
flowchart TD
subgraph "Ubuntu Setup Builder"
%% User Interface Layer
subgraph "User Interface Layer"
U["User"]:::user
end
%% Control Layer
subgraph "Control Layer"
ISE["Interactive Setup Engine [setup.sh]"]:::engine
end
%% Configuration & Assets Layer
subgraph "Configuration & Assets Layer"
CM["Configuration Manager [config.sh]"]:::config
AS["Assets [assets/]"]:::config
end
%% Module Layer
subgraph "Module Layer"
IM["Installation Modules [install-scripts/*]"]:::module
GF["Global Functions [Global_functions.sh]"]:::global
end
%% Support/Logging Layer
subgraph "Support/Logging Layer"
Log["Logging & Diagnostics [Install-Logs]"]:::logging
Arch["Archived Scripts [_archived/]"]:::archived
subgraph "Utility Scripts"
UTIL1["lxcinstaller.sh"]:::utility
UTIL2["ubuservertemplate.sh"]:::utility
end
end
%% External Dependencies
subgraph "External Dependencies"
APT["APT/External Repos"]:::external
end
end
%% Relationships
U -->|"selects"| ISE
ISE -->|"reads"| CM
CM -->|"loads"| AS
ISE -->|"executes"| IM
IM -->|"sources"| GF
IM -->|"logs"| Log
GF -->|"reports"| Log
IM -->|"fetches"| APT
%% Click Events
click ISE "https://github.com/neop26/ubupublic/blob/main/setup.sh"
click CM "https://github.com/neop26/ubupublic/blob/main/config.sh"
click AS "https://github.com/neop26/ubupublic/tree/main/assets/"
click IM "https://github.com/neop26/ubupublic/tree/main/install-scripts/"
click GF "https://github.com/neop26/ubupublic/blob/main/install-scripts/Global_functions.sh"
click Arch "https://github.com/neop26/ubupublic/tree/main/_archived/"
click UTIL1 "https://github.com/neop26/ubupublic/blob/main/lxcinstaller.sh"
click UTIL2 "https://github.com/neop26/ubupublic/blob/main/ubuservertemplate.sh"
%% Styles
classDef user fill:#cce5ff,stroke:#333,stroke-width:2px;
classDef engine fill:#ffcccc,stroke:#333,stroke-width:2px;
classDef config fill:#ccffcc,stroke:#333,stroke-width:2px;
classDef module fill:#ccccff,stroke:#333,stroke-width:2px;
classDef global fill:#e0ccff,stroke:#333,stroke-width:2px;
classDef logging fill:#ffffcc,stroke:#333,stroke-width:2px;
classDef archived fill:#ffcc99,stroke:#333,stroke-width:2px;
classDef utility fill:#ccffff,stroke:#333,stroke-width:2px;
classDef external fill:#d9d9d9,stroke:#333,stroke-width:2px;
- 📦 Modular design for easy customization
- 🛠️ Enhanced error handling and logging
- 🔄 Interactive menu-driven interface
- 📊 Progress indicators for long-running operations
- 📝 Detailed logging of all operations
- 🌐 Support for various Ubuntu versions
- 🔒 Security-focused configurations
- 🚀 Performance optimizations
Clone the repository:
git clone https://github.com/yourusername/ubupublic.git
cd ubupublic
chmod +x setup.sh
Run the main setup script:
./setup.sh
Follow the interactive prompts to select the modules you want to install.
Module | Description |
---|---|
System Update | Update system packages and install essential tools |
ZSH | Install ZSH with Oh-My-ZSH configuration |
Network Tools | Install network diagnostic and management tools |
Fonts | Install recommended font packages |
Neofetch | Install and configure Neofetch system information tool |
Azure Dev | Setup Azure development environment |
Docker | Install Docker and Docker Compose |
NVIDIA Drivers | Install NVIDIA drivers for GPU support |
Static IP | Configure static IP address |
Cockpit | Setup Cockpit web management console |
Git Config | Configure Git settings |
Node.js | Install Node.js and npm |
Apache | Install Apache web server |
Create User | Create a new user account |
PowerShell | Install PowerShell for Linux |
- Create a new script file in the
install-scripts
directory - Make sure to source the
Global_functions.sh
file - Add your module to the
MODULES
array insetup.sh
Edit the config.sh
file to customize default settings.
ubupublic/
├── assets/ # Configuration files and assets
├── install-scripts/ # Individual installation modules
├── config.sh # Central configuration settings
├── setup.sh # Main setup script
└── README.md # Documentation
All installation logs are stored in the Install-Logs
directory with timestamps for easy troubleshooting.
- Ubuntu (tested on 20.04, 22.04, and 24.04)
- Bash 4.0+
- Internet connection for package downloads
This project was inspired by JaKooLit scripts for deploying Hyprland on Debian and other distributions.
This project is licensed under the MIT License - see the LICENSE file for details.
- Complete architecture redesign
- Added interactive menu system
- Enhanced error handling and logging
- Improved module organization
- Added progress indicators
- Added NVIDIA driver installer
- Various bugfixes and improvements
- Initial release
- Tested on Ubuntu 23.10 and 24.04