141 lines
4.9 KiB
Markdown
141 lines
4.9 KiB
Markdown
# LXS
|
|
|
|
Multi-machine toolbox — one menu, two platforms. A Bash entrypoint for
|
|
Debian/Ubuntu servers and a PowerShell entrypoint for Windows workstations,
|
|
sharing the same interface, the same install flow and the same update
|
|
mechanism.
|
|
|
|
```
|
|
lxs.sh → linux/ server apps, hardening, benchmarks, MOTD
|
|
lxs.ps1 → windows/ diagnostics, cleanup, hardening, debloat, winget apps
|
|
VERSION shared by both
|
|
```
|
|
|
|
## Install
|
|
|
|
### Linux (Debian / Ubuntu)
|
|
|
|
```bash
|
|
curl -fsSL https://git.hyko.cx/hykocx/lxs/raw/branch/main/lxs.sh | sudo bash -s -- setup
|
|
```
|
|
|
|
Installs every file to `/usr/local/share/lxs/` and creates the symlink
|
|
`/usr/local/bin/lxs`. After install, sub-scripts run from disk — no network
|
|
calls per command.
|
|
|
|
> Avoid `sudo bash <(curl …)` — process substitution opens `/dev/fd/63` in your
|
|
> shell, which the root `bash` spawned by `sudo` cannot read
|
|
> (`bash: /dev/fd/63: No such file or directory`). Pipe through
|
|
> `sudo bash -s --` instead.
|
|
|
|
Or run once without installing (no `sudo` needed for the entrypoint —
|
|
sub-scripts auto-elevate when they need root):
|
|
|
|
```bash
|
|
curl -fsSL https://git.hyko.cx/hykocx/lxs/raw/branch/main/lxs.sh | bash
|
|
```
|
|
|
|
### Windows (10 1809+ / 11 / Server 2019+)
|
|
|
|
In PowerShell:
|
|
|
|
```powershell
|
|
& ([scriptblock]::Create((irm https://git.hyko.cx/hykocx/lxs/raw/branch/main/lxs.ps1))) setup
|
|
```
|
|
|
|
Installs to `%LOCALAPPDATA%\lxs`, adds `%LOCALAPPDATA%\lxs\bin` to your **user**
|
|
PATH and drops an `lxs.cmd` shim there — so the install itself never needs
|
|
administrator rights. Open a new terminal afterwards and run `lxs`. Tools that
|
|
change the machine request elevation on their own, in a separate window.
|
|
|
|
Or open the menu once without installing:
|
|
|
|
```powershell
|
|
irm https://git.hyko.cx/hykocx/lxs/raw/branch/main/lxs.ps1 | iex
|
|
```
|
|
|
|
Windows PowerShell 5.1 (preinstalled on every supported Windows) is enough;
|
|
PowerShell 7 works too.
|
|
|
|
## Usage
|
|
|
|
The same verbs on both platforms:
|
|
|
|
```
|
|
lxs # Interactive menu (checks for updates, cached 24h)
|
|
lxs setup # First-time install
|
|
lxs update # Update all installed files to latest
|
|
lxs install <app> # Install an application
|
|
lxs tool <name> [args] # Run a system tool
|
|
lxs info # Show system info
|
|
lxs version # Show version
|
|
lxs help # Show help
|
|
```
|
|
|
|
When a new version is published in this repo, the interactive menu shows an
|
|
`UPDATE_AVAILABLE` banner; run `lxs update` to pull all updated files.
|
|
|
|
## What is in the box
|
|
|
|
### Linux — `lxs install <app>`
|
|
|
|
| Name | What it installs |
|
|
|---|---|
|
|
| `coolify` | Coolify self-hosted PaaS |
|
|
| `pterodactyl` | Pterodactyl game server panel |
|
|
| `uptime-kuma` | Uptime Kuma monitoring |
|
|
| `cloudpanel` | CloudPanel server control panel |
|
|
| `proxmox` | Proxmox VE post-install tools |
|
|
|
|
### Linux — `lxs tool <name>`
|
|
|
|
| Name | What it does |
|
|
|---|---|
|
|
| `system` | System information and diagnostics |
|
|
| `benchmark` | CPU, disk and network benchmark |
|
|
| `harden` | UFW, fail2ban, unattended-upgrades |
|
|
| `root-password` | Change the root password |
|
|
| `update` | apt update / upgrade / autoremove |
|
|
| `root-ssh-login` | Toggle root SSH password login |
|
|
| `welcome`, `motd` | Custom MOTD banner |
|
|
|
|
### Windows — `lxs install <app>`
|
|
|
|
| Name | What it installs (via winget) |
|
|
|---|---|
|
|
| `dev` | Git, VS Code, Node.js, Python, PowerShell 7, Windows Terminal, WSL 2 |
|
|
| `utilities` | 7-Zip, Notepad++, PowerToys, Sysinternals, Everything, ShareX |
|
|
| `browsers` | LibreWolf, Firefox, Brave, Chrome, VLC, OBS Studio |
|
|
| `containers` | WSL 2, Hyper-V, Docker Desktop, VirtualBox |
|
|
| `claude-code` | Claude Code CLI (+ Git for Windows) |
|
|
|
|
### Windows — `lxs tool <name>`
|
|
|
|
| Name | What it does |
|
|
|---|---|
|
|
| `system` | Hardware, OS, disks, memory, event logs, SMART, activation |
|
|
| `network` | IP config, listening ports, DNS flush, ping/traceroute, stack reset |
|
|
| `cleanup` | Temp files, Windows Update cache, recycle bin, Prefetch, WinSxS |
|
|
| `repair` | SFC, DISM RestoreHealth, chkdsk |
|
|
| `restore-point` | Enable System Protection, create/list/roll back checkpoints |
|
|
| `update` | Windows Update (built-in COM API) + `winget upgrade --all` |
|
|
| `harden` | Firewall, SMBv1 off, UAC, Defender, LLMNR/NetBIOS, account audit |
|
|
| `remote-access` | Remote Desktop (with NLA) and the OpenSSH server |
|
|
| `debloat` | Remove preinstalled apps you pick, disable telemetry/ads/Copilot |
|
|
|
|
The Windows tools that change the system create a **restore point first**,
|
|
show exactly what they will change and ask before doing it. `debloat` never
|
|
removes an app you have not selected by number, and its registry, service and
|
|
scheduled-task changes can be reverted from its own menu.
|
|
|
|
## Requirements
|
|
|
|
- **Linux**: Debian or Ubuntu (other distros may work but are not tested),
|
|
`curl`. Some sub-scripts require root and auto-elevate via `sudo`.
|
|
- **Windows**: Windows 10 1809+, Windows 11 or Server 2019+. `winget`
|
|
(App Installer) is needed for the application installers only.
|
|
|
|
## License
|
|
|
|
MIT
|