{"id":31650504,"url":"https://github.com/heyfang/genesis-tool","last_synced_at":"2026-05-01T12:32:12.253Z","repository":{"id":316438440,"uuid":"1063290050","full_name":"HeyFang/genesis-tool","owner":"HeyFang","description":"A menu-driven Bash script to automate the initialization, security hardening, monitoring, and Docker deployment on fresh Ubuntu servers.","archived":false,"fork":false,"pushed_at":"2025-09-24T15:21:01.000Z","size":9,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-24T16:40:03.530Z","etag":null,"topics":["bash","linux","shell","ubuntu-server"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HeyFang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-24T12:27:25.000Z","updated_at":"2025-09-24T15:21:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"1113d15d-fdb8-4dca-be20-971c3e18a60d","html_url":"https://github.com/HeyFang/genesis-tool","commit_stats":null,"previous_names":["heyfang/genesis-tool"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/HeyFang/genesis-tool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HeyFang%2Fgenesis-tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HeyFang%2Fgenesis-tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HeyFang%2Fgenesis-tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HeyFang%2Fgenesis-tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HeyFang","download_url":"https://codeload.github.com/HeyFang/genesis-tool/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HeyFang%2Fgenesis-tool/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278742889,"owners_count":26037915,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","linux","shell","ubuntu-server"],"created_at":"2025-10-07T08:30:05.123Z","updated_at":"2025-10-07T08:30:10.336Z","avatar_url":"https://github.com/HeyFang.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Genesis Tool\n\nGenesis 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.\n\nThis tool is perfect for developers, students, and junior system administrators who need to provision servers quickly without missing critical setup and security steps.\n\n---\n\n## Features\n\n* **💻 Automated Initialization:** Updates the system, installs essential packages (`git`, `curl`, etc.), and creates a new `sudo`-privileged user with your SSH key.\n* **🛡️ One-Click Security Hardening:** Configures the UFW firewall, disables root SSH login, and installs Fail2Ban to protect against brute-force attacks.\n* **🩺 Real-Time Monitoring:** Launches a persistent `tmux` session with `btop`, providing a beautiful and comprehensive real-time dashboard of system resources.\n* **🐳 Docker \u0026 Application Deployment:** Installs Docker and Docker Compose, then deploys a containerized NGINX web server with a single menu option.\n* ** modular Codebase:** Organized with a clean, multi-file structure to demonstrate professional coding practices.\n\n---\n\n## Getting Started\n\nFollow these steps to use the Genesis Tool on a new Ubuntu 22.04 server.\n\n### Prerequisites\n\n* A fresh Ubuntu 22.04 server.\n* Access to the server as the `root` user via SSH with a key.\n\n### Installation \u0026 Execution\n\n1.  **Log in to your server as `root`:**\n    ```bash\n    ssh root@\u003cYOUR_SERVER_IP\u003e\n    ```\n\n2.  **Clone the repository:**\n    ```bash\n    git clone [https://github.com/](https://github.com/)\u003cYOUR_USERNAME\u003e/genesis-tool.git\n    ```\n\n3.  **Navigate into the directory and make the script executable:**\n    ```bash\n    cd genesis-tool\n    chmod +x genesis.sh\n    ```\n\n4.  **Run the tool:**\n    ```bash\n    ./genesis.sh\n    ```\n    This will launch the interactive menu, and you can begin provisioning your server.\n\n---\n\n## Usage\n\nOnce the script is running, you will be presented with a menu. Simply type the number corresponding to the task you want to perform.\n\n1.  **Initialize Server:** **Run this first.** It will prepare your server and create your new user account. You will be prompted to log out of `root` and log back in as your new user.\n2.  **Harden Security:** Run this after logging in as your new user to apply firewall rules and lock down SSH.\n3.  **Show Health Monitor (btop):** Launches or attaches to a `btop` monitoring session running inside `tmux`.\n4.  **Install Docker \u0026 Deploy NGINX:** Automates the installation of Docker and launches a sample NGINX web server.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheyfang%2Fgenesis-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fheyfang%2Fgenesis-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheyfang%2Fgenesis-tool/lists"}