Genesis Tool is a powerful, menu-driven Bash script designed to automate the entire lifecycle of a new Ubuntu server. It transforms the tedious, error-prone process of server setup into a fast, secure, and consistent workflow, accessible from a single, user-friendly command-line interface.
This tool is perfect for developers, students, and junior system administrators who need to provision servers quickly without missing critical setup and security steps.
- 💻 Automated Initialization: Updates the system, installs essential packages (
git,curl, etc.), and creates a newsudo-privileged user with your SSH key. - 🛡️ One-Click Security Hardening: Configures the UFW firewall, disables root SSH login, and installs Fail2Ban to protect against brute-force attacks.
- 🩺 Real-Time Monitoring: Launches a persistent
tmuxsession withbtop, providing a beautiful and comprehensive real-time dashboard of system resources. - 🐳 Docker & Application Deployment: Installs Docker and Docker Compose, then deploys a containerized NGINX web server with a single menu option.
- ** modular Codebase:** Organized with a clean, multi-file structure to demonstrate professional coding practices.
Follow these steps to use the Genesis Tool on a new Ubuntu 22.04 server.
- A fresh Ubuntu 22.04 server.
- Access to the server as the
rootuser via SSH with a key.
-
Log in to your server as
root:ssh root@<YOUR_SERVER_IP>
-
Clone the repository:
git clone [https://github.com/](https://github.com/)<YOUR_USERNAME>/genesis-tool.git
-
Navigate into the directory and make the script executable:
cd genesis-tool chmod +x genesis.sh -
Run the tool:
./genesis.sh
This will launch the interactive menu, and you can begin provisioning your server.
Once the script is running, you will be presented with a menu. Simply type the number corresponding to the task you want to perform.
- Initialize Server: Run this first. It will prepare your server and create your new user account. You will be prompted to log out of
rootand log back in as your new user. - Harden Security: Run this after logging in as your new user to apply firewall rules and lock down SSH.
- Show Health Monitor (btop): Launches or attaches to a
btopmonitoring session running insidetmux. - Install Docker & Deploy NGINX: Automates the installation of Docker and launches a sample NGINX web server.