feat: initial project scaffold for lxs multi-tool
- add main entrypoint with interactive menu and CLI dispatcher (lxs.sh) - add shared helpers library with colors, loggers, and spinner (lib/common.sh) - add app installers for coolify, pterodactyl, uptime-kuma, cloudpanel, and proxmox (apps/) - add system tools for monitoring, benchmarking, and hardening (tools/) - add VERSION file (0.1.0) as single source of truth for releases - add MIT LICENSE - expand README with usage, project structure, and release workflow
This commit is contained in:
@@ -1,2 +1,86 @@
|
||||
# lxs
|
||||
# LXS
|
||||
|
||||
Linux multi-tool — a Bash menu and CLI for installing common server apps and running system tools on Debian/Ubuntu.
|
||||
|
||||
## Quick install
|
||||
|
||||
```bash
|
||||
sudo bash <(curl -fsSL https://git.hyko.cx/hykocx/lxs/raw/branch/main/lxs.sh) setup
|
||||
```
|
||||
|
||||
This downloads the repo tarball, 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.
|
||||
|
||||
Or run once without installing:
|
||||
|
||||
```bash
|
||||
bash <(curl -fsSL https://git.hyko.cx/hykocx/lxs/raw/branch/main/lxs.sh)
|
||||
```
|
||||
|
||||
When a new version is published in this repo, the interactive menu shows a *"Nouvelle version disponible"* banner; run `lxs update` to pull all updated files.
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
lxs # Interactive menu (checks for updates, cached 24h)
|
||||
lxs setup # First-time install of all files to /usr/local/share/lxs
|
||||
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
|
||||
```
|
||||
|
||||
### Applications
|
||||
|
||||
| Command | Description |
|
||||
|---|---|
|
||||
| `lxs install coolify` | Self-hosted PaaS |
|
||||
| `lxs install pterodactyl` | Game server management panel |
|
||||
| `lxs install uptime-kuma` | Monitoring tool |
|
||||
| `lxs install cloudpanel` | Web hosting control panel |
|
||||
| `lxs install proxmox` | Proxmox VE management tools |
|
||||
|
||||
### Tools
|
||||
|
||||
| Command | Description |
|
||||
|---|---|
|
||||
| `lxs tool system` | System monitoring and diagnostics |
|
||||
| `lxs tool benchmark` | Server benchmark (CPU / RAM / disk / network) |
|
||||
| `lxs tool harden` | Baseline hardening: UFW + fail2ban + SSH key-only + unattended-upgrades |
|
||||
|
||||
## Project structure
|
||||
|
||||
```
|
||||
lxs/
|
||||
├── lxs.sh # Main entrypoint (menu + CLI dispatcher)
|
||||
├── VERSION # Single source of truth for the version (bump on every release)
|
||||
├── lib/
|
||||
│ └── common.sh # Shared helpers (colors, loggers, spinner)
|
||||
├── apps/ # Application installers
|
||||
│ ├── coolify.sh
|
||||
│ ├── pterodactyl.sh
|
||||
│ ├── uptime-kuma.sh
|
||||
│ ├── cloudpanel.sh
|
||||
│ └── proxmox.sh
|
||||
└── tools/ # System tools
|
||||
├── system-tools.sh
|
||||
├── server-benchmark.sh
|
||||
└── harden.sh
|
||||
```
|
||||
|
||||
After `lxs setup`, the full tree lives in `/usr/local/share/lxs/` and sub-scripts execute from disk. If `lxs.sh` is run without being installed (the one-liner mode), it falls back to downloading sub-scripts on demand.
|
||||
|
||||
### Releasing a new version
|
||||
|
||||
Bump only the [VERSION](VERSION) file — `lxs.sh` reads it at startup. Installed clients also fetch this file (cached 24 h in `~/.cache/lxs/`) to detect updates. In one-shot mode (`bash <(curl …lxs.sh)`) the file isn't readable from the process substitution, so `lxs version` reports `dev`.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Debian or Ubuntu (other distros may work but are not tested)
|
||||
- `curl`
|
||||
- Some sub-scripts require root; they will auto-elevate via `sudo` when run.
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
|
||||
Reference in New Issue
Block a user