hykocx 8383612fe8 refactor(harden): remove ssh key-only module and improve port detection
- drop DO_SSH flag, --no-ssh option, and setup_ssh() function entirely
- replace inline sshd_config port read with sshd_effective_port() that also scans sshd_config.d drop-ins
- replace raw DEBIAN_FRONTEND export with apt_noninteractive helper and add wait_for_apt guard
- replace hardcoded separator strings with show_separator calls
2026-05-12 21:35:25 -04:00

LXS

Linux multi-tool — a Bash menu and CLI for installing common server apps and running system tools on Debian/Ubuntu.

Quick install

curl -fsSL https://git.hyko.cx/hykocx/lxs/raw/branch/main/lxs.sh | sudo bash -s -- 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.

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):

curl -fsSL https://git.hyko.cx/hykocx/lxs/raw/branch/main/lxs.sh | bash

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

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
│   ├── index.sh           # Interactive menu listing the apps below
│   ├── coolify.sh
│   ├── pterodactyl.sh
│   ├── uptime-kuma.sh
│   ├── cloudpanel.sh
│   └── proxmox.sh
└── tools/                 # System tools
    ├── index.sh           # Interactive menu listing the tools below
    ├── system-infos.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 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 (curl … | bash) the file isn't on disk next to the script, 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

S
Description
No description provided
Readme MIT 263 KiB
Languages
Shell 100%