A browser-based tool that generates a personalised Linux install script in a few clicks — no terminal knowledge required.
Live site: linux-setup-generator.online
Setting up a fresh Linux install means hunting down package names, copy-pasting install commands, and hoping you don't forget anything. This tool replaces all of that with a simple 3-step wizard:
- Pick your distro — Ubuntu, Arch, or Void Linux
- Choose your programs — browse and search 86 curated apps across 58 categories
- Get your script — a ready-to-run bash script is generated and can be copied or downloaded
Everything runs in the browser. No account, no server, no data collection.
![]() |
![]() |
![]() |
![]() |
- Go to the Setup Generator
- Select your distro
- Click the programs you want to install
- Click Generate script
- Click Copy to clipboard, open a terminal, paste with
Ctrl+Shift+V, and pressEnter
- Follow steps 1–4 above
- Click Download script.sh
- Open a terminal in the same folder and run:
bash script.sh
You may be prompted for your password — this is normal. The script only runs the install commands for the programs you selected.
- Step progress bar — always know where you are in the flow
- Category sidebar — filter programs by type (terminal, editor, media player…)
- Real-time search — search by name, description, or category
- Distro-aware packages — uses the correct package name for each distro automatically
- Custom installs — programs not in standard repos ship their own
install.sh - Browser back button support — step state is tracked in the URL
- Copy / Download — get the script into your system in one click
- Beginner friendly — inline instructions explain every step
├── content/
│ ├── distros/ # Distro definitions (JSON)
│ ├── programs/ # Program catalog (one folder per program)
│ │ └── <slug>/
│ │ ├── program.json
│ │ └── custom_install/
│ │ └── install.sh # Only for CUSTOM_INSTALL programs
│ └── categories/ # Category definitions (JSON)
├── layouts/
│ ├── _default/
│ │ └── baseof.html # Base template (nav, styles, footer)
│ ├── index.html # Home page
│ ├── programs/
│ │ └── list.html # Programs catalog page
│ ├── setup-generator/
│ │ └── single.html # 3-step generator wizard
│ └── partials/
│ ├── program-browser.html # Shared program list + sidebar HTML
│ └── program-browser-js.html # Shared program browser logic
├── static/
│ └── js/
│ └── script-generator.js # Script generation class
└── .github/
└── workflows/
└── hugo.yml # GitHub Pages deploy workflow
Create a folder under content/programs/<slug>/ and add a program.json:
{
"name": "Alacritty",
"slug": "alacritty",
"description": "A fast, GPU-accelerated terminal emulator",
"git_repo": "https://github.com/alacritty/alacritty",
"website": "https://alacritty.org/",
"license": "MIT",
"categories": ["terminal"],
"package_names": {
"default": "alacritty",
"ubuntu": "alacritty",
"arch": "alacritty",
"void": "alacritty"
}
}The package_names object maps distro slugs to package names. If the target distro is not listed, default is used as a fallback.
If a program is not available through the standard package manager, set the package name to "CUSTOM_INSTALL" and add an install script at custom_install/install.sh:
"package_names": {
"default": "CUSTOM_INSTALL"
}If the program has dependencies that need to be installed first, list them in a dependencies array:
"dependencies": ["curl", "git"]Create a file under content/distros/<slug>.json:
{
"name": "Ubuntu",
"slug": "ubuntu",
"description": "Ubuntu is a Debian-based Linux distribution.",
"install_package_command": "apt-get install -y"
}Requirements: Hugo extended v0.155+
# Clone the repo
git clone https://github.com/rajporus19/linux-setup-generator.git
cd linux-setup-generator
# Start the dev server
hugo server -b http://localhost:1313 -p 1313The site will be available at http://localhost:1313/.
The site deploys automatically to GitHub Pages on every push to main via the workflow at .github/workflows/hugo.yml.
Setup (one time):
- Go to Settings → Pages in your GitHub repo
- Set Source to GitHub Actions
- Push to
main— the workflow will build and deploy the site
| Layer | Technology |
|---|---|
| Static site generator | Hugo |
| Templating | Hugo templates (Go template syntax) |
| Styling | Plain CSS (no framework) |
| JavaScript | Vanilla JS, no dependencies |
| Script generation | Custom ScriptGenerator class |
| Hosting | GitHub Pages |
| CI/CD | GitHub Actions |
GPL-3.0



