docs(readme): drop stale static version; add OS-support matrix + real requirements

The README banner showed v0.9.40 while the badge showed v0.9.58 — static fields
that go stale and disagree. Removed the per-release version from both the badge row
and the banner SVG (the release version lives in tags/changelog, not a frozen
image). Added a "Supported operating systems" matrix (Debian/Ubuntu · RHEL · SUSE
full; Arch partial; Alpine metrics-only; anything else metrics-only) and real
minimum requirements (CPU/RAM/disk for the panel host; nothing on managed servers).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
feat/v1-foundation
boban 2026-06-25 00:35:35 +02:00
parent ab728efc6f
commit cf70317534
2 changed files with 35 additions and 5 deletions

View File

@ -7,7 +7,6 @@
**One dashboard for your whole fleet. Agentless over SSH. Self-hosted, security-first, open core.**
[![License](https://img.shields.io/badge/license-AGPL--3.0-FF6B2C?style=flat-square&labelColor=0F1318)](#license)
[![Version](https://img.shields.io/badge/release-v0.9.58-FF6B2C?style=flat-square&labelColor=0F1318)](https://github.com/clusev/clusev)
[![Laravel](https://img.shields.io/badge/Laravel-13-9DAAB6?style=flat-square&labelColor=0F1318)](https://laravel.com)
[![Livewire](https://img.shields.io/badge/Livewire-3-9DAAB6?style=flat-square&labelColor=0F1318)](https://livewire.laravel.com)
[![Docker](https://img.shields.io/badge/Docker-ready-43C1D8?style=flat-square&labelColor=0F1318)](#quick-start)
@ -123,9 +122,40 @@ recommended** — enable TOTP and/or a security key from **Settings → Security
## Requirements
- A **Debian or Ubuntu** server (a small VM is enough) with **root** access.
- A **public IP**. Optionally a domain whose DNS points at the server (for automatic HTTPS).
- Only **git** to fetch the repo — the installer sets up Docker and everything else.
**The Clusev panel host** — the one VM that runs the dashboard:
- **OS:** Debian 12/13 or Ubuntu 22.04/24.04, with **root** access.
- **CPU / RAM:** 1 vCPU and **1 GB RAM** minimum (**2 GB recommended**) — the whole Docker stack
(app, MariaDB, Redis, Reverb, queue) runs here.
- **Disk:** ~**5 GB** free minimum (**10 GB+** recommended — image and database grow over time).
- **Network:** a **public IP**; optionally a domain whose DNS points at the server (for automatic
HTTPS — Let's Encrypt needs ports **80/443** reachable).
- **Tools:** only **git** to fetch the repo — the installer sets up Docker and everything else.
**The servers you manage** need **nothing installed** — just **SSH** reachable from the panel and a
standard Linux `/proc`. Full control (service management + hardening) additionally needs **systemd**
and one of `apt` / `dnf` / `zypper`. See [**Supported operating systems**](#supported-operating-systems).
---
## Supported operating systems
Clusev is **agentless** — it manages whatever it can reach over SSH. How much works depends on the
target's init system and package manager:
| OS family | Metrics | systemd services | Hardening<br>(SSH · fail2ban · firewall · auto-updates) |
|:--|:-:|:-:|:-:|
| **Debian · Ubuntu** (and derivatives) | ✅ | ✅ | ✅ |
| **RHEL · Fedora · Rocky · AlmaLinux · CentOS Stream · Amazon Linux** | ✅ | ✅ | ✅ |
| **openSUSE · SLES** | ✅ | ✅ | ✅ |
| **Arch** | ✅ | ✅ | ⚠️ not yet (`pacman` not wired) |
| **Alpine** (OpenRC) | ✅ | ❌ no systemd | ❌ |
| **Other / unidentified Linux** | ✅ if `/proc` present | ❌ | ❌ |
**Metrics** (CPU, memory, disk, load) read from `/proc` and work on essentially any Linux. **Service
control** needs **systemd**. **Hardening** uses the host's firewall (`ufw` / `firewalld`) and package
manager (`apt` / `dnf` / `zypper`); where those aren't present, the action is shown as unavailable
rather than failing silently.
---

View File

@ -54,7 +54,7 @@ text{-webkit-font-smoothing:antialiased;}
<rect x="70" y="186" width="318" height="4" rx="2" fill="#FF6B2C"/><rect x="392" y="186" width="40" height="4" rx="2" fill="#FF6B2C" fill-opacity="0.4"/>
<text x="70" y="232" font-family="CP" font-weight="600" font-size="21" fill="#9DAAB6">One dashboard for a fleet of Linux servers.</text>
<text x="70" y="262" font-family="JBM" font-size="13.5" letter-spacing="0.3" fill="#7E8A95">Self-hosted control plane · metrics · services · SFTP · hardening · audit.</text>
<g transform="translate(70,292)"><rect x="0" y="0" width="78.4" height="26" rx="13" fill="#ffffff" fill-opacity="0.04" stroke="#ffffff" stroke-opacity="0.10"/><text x="39.2" y="17" text-anchor="middle" font-family="JBM" font-size="11.5" letter-spacing="0.4" fill="#FF9259">AGPL-3.0</text></g><g transform="translate(158.4,292)"><rect x="0" y="0" width="95.0" height="26" rx="13" fill="#ffffff" fill-opacity="0.04" stroke="#ffffff" stroke-opacity="0.10"/><text x="47.5" y="17" text-anchor="middle" font-family="JBM" font-size="11.5" letter-spacing="0.4" fill="#9DAAB6">Laravel 13</text></g><g transform="translate(263.4,292)"><rect x="0" y="0" width="95.0" height="26" rx="13" fill="#ffffff" fill-opacity="0.04" stroke="#ffffff" stroke-opacity="0.10"/><text x="47.5" y="17" text-anchor="middle" font-family="JBM" font-size="11.5" letter-spacing="0.4" fill="#9DAAB6">Livewire 3</text></g><g transform="translate(368.4,292)"><rect x="0" y="0" width="61.8" height="26" rx="13" fill="#ffffff" fill-opacity="0.04" stroke="#ffffff" stroke-opacity="0.10"/><text x="30.9" y="17" text-anchor="middle" font-family="JBM" font-size="11.5" letter-spacing="0.4" fill="#74D7E8">Docker</text></g><g transform="translate(440.2,292)"><rect x="0" y="0" width="70.1" height="26" rx="13" fill="#ffffff" fill-opacity="0.04" stroke="#ffffff" stroke-opacity="0.10"/><text x="35.1" y="17" text-anchor="middle" font-family="JBM" font-size="11.5" letter-spacing="0.4" fill="#9DAAB6">v0.9.40</text></g>
<g transform="translate(70,292)"><rect x="0" y="0" width="78.4" height="26" rx="13" fill="#ffffff" fill-opacity="0.04" stroke="#ffffff" stroke-opacity="0.10"/><text x="39.2" y="17" text-anchor="middle" font-family="JBM" font-size="11.5" letter-spacing="0.4" fill="#FF9259">AGPL-3.0</text></g><g transform="translate(158.4,292)"><rect x="0" y="0" width="95.0" height="26" rx="13" fill="#ffffff" fill-opacity="0.04" stroke="#ffffff" stroke-opacity="0.10"/><text x="47.5" y="17" text-anchor="middle" font-family="JBM" font-size="11.5" letter-spacing="0.4" fill="#9DAAB6">Laravel 13</text></g><g transform="translate(263.4,292)"><rect x="0" y="0" width="95.0" height="26" rx="13" fill="#ffffff" fill-opacity="0.04" stroke="#ffffff" stroke-opacity="0.10"/><text x="47.5" y="17" text-anchor="middle" font-family="JBM" font-size="11.5" letter-spacing="0.4" fill="#9DAAB6">Livewire 3</text></g><g transform="translate(368.4,292)"><rect x="0" y="0" width="61.8" height="26" rx="13" fill="#ffffff" fill-opacity="0.04" stroke="#ffffff" stroke-opacity="0.10"/><text x="30.9" y="17" text-anchor="middle" font-family="JBM" font-size="11.5" letter-spacing="0.4" fill="#74D7E8">Docker</text></g>
<!-- fleet visualization -->
<text x="905" y="44" font-family="JBM" font-size="11" letter-spacing="3" fill="#707B85">FLEET · LIVE STATUS</text>

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB