From ccabc1cfa6d137bd05c8072426a523d25d6b9aea Mon Sep 17 00:00:00 2001 From: boban Date: Mon, 22 Jun 2026 21:41:52 +0200 Subject: [PATCH] =?UTF-8?q?chore(release):=20point=20public-facing=20URLs?= =?UTF-8?q?=20at=20github.com/clusev/clusev=20=E2=80=94=200.9.58?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Default update source, README (badge/clone/home), the console + source-view branding, and the CHANGELOG compare links now reference the public repo. Private URLs remain only in the gitignored .env (install.sh derives CLUSEV_REPOSITORY from the clone origin). Bump 0.9.58. Co-Authored-By: Claude Opus 4.8 --- CHANGELOG.md | 31 ++++++++++++++++--- README.md | 6 ++-- config/clusev.php | 11 ++++--- resources/js/app.js | 2 +- .../views/components/source-comment.blade.php | 2 +- 5 files changed, 37 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a17384b..f6ac7a5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,27 @@ getaggte Releases (Kanal `stable`, optional `beta`) — niemals Entwicklungs-Bui _Keine offenen Änderungen — der nächste Stand wird hier gesammelt und als `vX.Y.Z` getaggt._ +## [0.9.58] - 2026-06-22 + +### Hinzugefügt +- **Update-Check unterstützt jetzt GitHub.** Bisher kannte der Versions-Check nur die Gitea-API. Damit + Public-Nutzer Updates aus dem öffentlichen GitHub-Repo sehen, spricht der Check je nach Host die + passende API: GitHub über `api.github.com` (Tags) und `raw.githubusercontent.com` (Changelog), + Gitea wie gehabt. Die Host-Logik liegt an genau einer Stelle (`ReleaseChecker`). + +### Geändert +- **Öffentliche Projekt-Adresse ist jetzt `github.com/clusev/clusev`.** README, Quelltext-/Konsolen-Branding + und die Standard-Update-Quelle zeigen aufs öffentliche Repo. Dev/Staging überschreiben das weiterhin + per `CLUSEV_REPOSITORY` in der (gitignorierten) `.env` — es steht keine private URL in versionierten Dateien. + +### Behoben +- **Interne Dev-Dokumente landen nicht im Public-Repo.** Die Release-Promotion kopiert nur lauffähigen + App-Code: `CLAUDE.md`, `rules.md`, `handoff.md` und `docs/` sind als `export-ignore` markiert und werden + von `git archive` (und damit `promote.sh`) ausgelassen — `CHANGELOG.md` bleibt bewusst öffentlich, weil + die Versions-Seite ihn vom Public-Repo abruft. +- **Update-Check-Tests sind jetzt hermetisch.** Sie setzen die Repository-URL selbst (neutraler Host) statt + sich auf die `.env` zu verlassen — so laufen sie auch in CI mit leerer `.env.example` grün. + ## [0.9.57] - 2026-06-22 ### Hinzugefügt @@ -1241,8 +1262,8 @@ Erste geschnittene Version — die komplette v1-Basis inklusive Server- und Pane - Release-/Versionierungsmodell: echte semantische Versionen + Git-Tags, Changelog pro Version, Kanäle `stable`/`beta` (kein nutzer-seitiges `dev`). -[Unreleased]: https://git.bave.dev/boban/clusev/compare/v0.2.1...HEAD -[0.2.1]: https://git.bave.dev/boban/clusev/compare/v0.2.0...v0.2.1 -[0.2.0]: https://git.bave.dev/boban/clusev/compare/v0.1.1...v0.2.0 -[0.1.1]: https://git.bave.dev/boban/clusev/compare/v0.1.0...v0.1.1 -[0.1.0]: https://git.bave.dev/boban/clusev/releases/tag/v0.1.0 +[Unreleased]: https://github.com/clusev/clusev/compare/v0.2.1...HEAD +[0.2.1]: https://github.com/clusev/clusev/compare/v0.2.0...v0.2.1 +[0.2.0]: https://github.com/clusev/clusev/compare/v0.1.1...v0.2.0 +[0.1.1]: https://github.com/clusev/clusev/compare/v0.1.0...v0.1.1 +[0.1.0]: https://github.com/clusev/clusev/releases/tag/v0.1.0 diff --git a/README.md b/README.md index e305bd4..5a88725 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ **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.40-FF6B2C?style=flat-square&labelColor=0F1318)](https://git.bave.dev/boban/clusev) +[![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) @@ -88,7 +88,7 @@ one Docker stack — `app` (php-fpm + nginx + Vite), `reverb`, `queue`, `schedul ```bash sudo apt-get update && sudo apt-get install -y git # minimal images often lack git -git clone https://git.bave.dev/boban/clusev.git +git clone https://github.com/clusev/clusev.git cd clusev sudo ./install.sh ``` @@ -225,6 +225,6 @@ RBAC, audit export, alerting) are separate.
-**Project home — [git.bave.dev/boban/clusev](https://git.bave.dev/boban/clusev)** +**Project home — [github.com/clusev/clusev](https://github.com/clusev/clusev)**
diff --git a/config/clusev.php b/config/clusev.php index 413377e..e588ddc 100644 --- a/config/clusev.php +++ b/config/clusev.php @@ -2,7 +2,7 @@ return [ // First tagged release is v0.1.0 (semantic, not -dev). - 'version' => '0.9.57', + 'version' => '0.9.58', // Deployed commit + branch. install.sh bakes these into .env from the host's .git (the prod // image ships no .git); the Versions page prefers them and falls back to a live .git read in @@ -19,10 +19,11 @@ return [ // is the fallback so a domain set during install still gets automatic TLS. 'domain' => env('APP_DOMAIN'), - // Update source. Empty by default: the PUBLIC repo URL is injected via CLUSEV_REPOSITORY (env), - // which install.sh derives from the clone origin. Private (Gitea/GitHub-private) URLs live ONLY in - // the gitignored .env — never in tracked files, so the public repo exposes no private URL. - 'repository' => env('CLUSEV_REPOSITORY', ''), + // Update source. Defaults to the PUBLIC repo (safe to ship — it is public). install.sh overrides + // it via CLUSEV_REPOSITORY, derived from the clone origin: dev points at Gitea, staging at the + // GitHub-private mirror, public users at the public repo. Private (Gitea/GitHub-private) URLs live + // ONLY in the gitignored .env — never in tracked files, so the public repo exposes no private URL. + 'repository' => env('CLUSEV_REPOSITORY', 'https://github.com/clusev/clusev'), 'license' => 'AGPL-3.0', ]; diff --git a/resources/js/app.js b/resources/js/app.js index 66fd3d4..a378144 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -403,7 +403,7 @@ document.addEventListener('alpine:init', () => { console.log('%cSelf-hosted control plane für deine Linux-Flotte.', sub); console.log('%c⚠ Stopp — diese Konsole ist für Entwickler.', warnH); console.log('%cFüg hier NICHTS ein, das dir jemand geschickt hat. Solche „Tricks" sind fast\nimmer Betrug (Self-XSS) und können deine Sitzung und deine Server übernehmen.', warnB); - console.log('%cNeugierig? Fragen? Mitbauen? → https://git.bave.dev/boban/clusev · AGPL-3.0', link); + console.log('%cNeugierig? Fragen? Mitbauen? → https://github.com/clusev/clusev · AGPL-3.0', link); } catch (_) { // console styling unsupported — ignore } diff --git a/resources/views/components/source-comment.blade.php b/resources/views/components/source-comment.blade.php index 3840cdf..002b634 100644 --- a/resources/views/components/source-comment.blade.php +++ b/resources/views/components/source-comment.blade.php @@ -13,7 +13,7 @@ Du liest den Quelltext — schön! Neugierig, wie das gebaut ist? Fragen, Feedback oder mitbauen? Wir freuen uns: - → https://git.bave.dev/boban/clusev + → https://github.com/clusev/clusev PS: Konsole & Quelltext sind für Entwickler. Füg hier NICHTS ein, das dir jemand geschickt hat — solche „Tricks" sind fast immer Betrug (Self-XSS).