KRATE 0.7.0 beta.13
Pre-release
Pre-release
·
4 commits
to main
since this release
KRATE 0.7.0
| Tag | v0.7.0-beta.13 |
| Channel | pre-release (beta) |
Packages
| Platform | File | SHA256 |
|---|---|---|
debian13-amd64 |
krate_0.7.0.beta.13-trixie_amd64.deb |
340501b707fc12e4bf10a46b7301d74c418743399bc92ea2252f0d48b94e0d5e |
Install
zen pull --check
zen pullThe update channel (stable or pre-release) is configured with update_channel in
/etc/krate/environment.d/zenfw.conf (overrides in zenfw.conf.local).
zen pull resolves the matching release automatically when conditions are met.
Changes
console (e002bc4)
- chore(repo): drop accidental CMake build-test tree (
e002bc4) — @tomcdj71 - fix(dashboard): keep HarmonyUI var/ shared during updates (
6ad78db) — @tomcdj71 - fix(pull): select latest release by version, not GitHub list order (
ce3ff74) — @tomcdj71 - feat(telemetry): collect SMART disk health in snapshot (
0f22178) — @tomcdj71 - feat(telemetry): add processes, thermals, and storage pool collectors (
7d1319f) — @tomcdj71 - feat(telemetry): collect multi-GPU metrics for NVIDIA, AMD, and Intel (
803eef1) — @tomcdj71 - feat(telemetry): expose NVIDIA GPU util, VRAM, and temperature (
bd77300) — @tomcdj71 - chore(artifacts): delete CMake build artifacts and configuration files (
8566dfc) — @tomcdj71 - fix(crypto): harden machine fingerprint with root disk UUID and MAC (
5197f8f) — @tomcdj71 - checkpoint before checking out develop (
d28b293) — @tomcdj71 - fix(provider): detect OVH VPS via cloud-init and hostname markers (
115a8f8) — @tomcdj71 - fix(zen): repair set domain validation and pull --check snapshots (
d27510e) — @tomcdj71 - fix(license): use canonical KRATE/zen/1.0 User-Agent for API calls (
9f0ebf4) — @tomcdj71 - feat(license): unify payload contract and enforce free update delay (
a6b376d) — @tomcdj71 - fix(license): upgrade local-free fallback when the API is reachable (
b47b374) — @tomcdj71 - fix(software): qualify Options in subdomain install defaults helper (
f1c788b) — @tomcdj71 - fix(provider): broaden OVH detection on modern VPS images (
308b441) — @tomcdj71 - feat(license): add license::request and refresh API-signed licenses. (
c5ed87b) — @tomcdj71 - feat(software): default CLI installs to subdomain when user routing is on (
d2a57c9) — @tomcdj71 - refactor(domain): subdomain routing opt-out instead of opt-in (
2af39b2) — @tomcdj71 - fix(domain): honor autocomplete -s for subdomain install eligibility (
f32b576) — @tomcdj71 - fix(caddy): use parent-relative imports in per-user site template (
f41df9f) — @tomcdj71 - fix(domain): repair missing user site block when subdomain label exists (
f18f2e8) — @tomcdj71 - fix(tmpfiles): add www-data-writable zen job log directory (
422a9fd) — @tomcdj71 - feat(domain): auto-provision default user subdomain labels (
eb68c4b) — @tomcdj71 - feat(domain): regenerate VSFTPD TLS cert when apex domain changes (
decca33) — @tomcdj71 - fix(domain): parse OpenSSL SAN values from continuation line (
1765542) — @tomcdj71 - feat(domain): add domain::cert::list for Caddy and VSFTPD certificates (
16a37f1) — @tomcdj71 - fix(lifecycle): resolve url_base before proxy routing is computed (
24b9602) — @tomcdj71 - fix(pull): compare installed KRATE upstream version reliably (
40b5c38) — @tomcdj71 - fix(support): terminate sshx session on disable (
b0e0b31) — @tomcdj71 - fix(support): resolve audit session dir for remote shells (
7f54993) — @tomcdj71 - fix(support): ensure session wrapper is executable at install (
d3f5096) — @tomcdj71 - fix(Support): gate session readiness on captured sshx URL (
91e34b7) — @tomcdj71 - fix(Caddy): prune stale template artifacts from /etc/caddy (
5461dc1) — @tomcdj71 - fix(Support): stop krate-supportd from killing session during startup (
c485b0b) — @tomcdj71 - fix(Support): tolerate null JSON fields in krate-supportd session state (
13079b2) — @tomcdj71 - fix(Support): resolve build_status_json compile errors in CI (
a09bfa1) — @tomcdj71 - feat(Support): add JSON output for status and audit commands (
fcd6438) — @tomcdj71 - fix(Caddy): import public TLS fragment at site level (
02abed1) — @tomcdj71 - fix(Dependency): use 7200s timeout for platform apt install phases (
b4f52ac) — @tomcdj71 - fix(Support): find prebuilt zenfw package when building krate-supportd (
bdcd400) — @tomcdj71 - feat(License): gate user and firewall CLI on premium license features (
a10fc3a) — @tomcdj71 - chore(Branding): drop get.runkrate.com from zenfw trusted hosts (
d45ce83) — @tomcdj71 - chore(Branding): point console services and license client to runkrate.com (
9e2de5e) — @tomcdj71
setup (71a0d80)
- chore(repo): harden ignore rules and neutralize conf example (
71a0d80) — @tomcdj71 - fix(setup): stop using zenfw::license::k_license_user_agent in activateLicense (
7f5752b) — @tomcdj71 - fix(license): send canonical User-Agent on setup activation (
c0d9afa) — @tomcdj71 - feat(setup): align local-free license with canonical payload contract (
58cab9c) — @tomcdj71 - feat(setup): add account_email for paid license activation (
d0c3d7e) — @tomcdj71 - fix(setup): wait for apt lock before package steps (
07b539b) — @tomcdj71 - fix(Caddy): prune package-only templates after copying Caddy tree (
0b2f5de) — @tomcdj71 - fix(Caddy): import public TLS fragment at site level during setup (
1a65480) — @tomcdj71 - fix(Rollback): repair stop-services shell and wait for apt lock (
cf336bd) — @tomcdj71 - feat(License): disable premium features on free local license (
e918f8e) — @tomcdj71 - chore(Branding): use runkrate.com endpoints in setup installer (
9c9ba52) — @tomcdj71 - feat(Rollback): restore APT snapshot on failure and via setup --rollback (
e6b4195) — @tomcdj71 - feat(SystemUpdate): refresh update snapshot via zen pull --check after install (
b46307a) — @tomcdj71 - fix(Permissions): resolve krate group with getgrnam in zenfw.conf.local permissions (
472b622) — @tomcdj71 - fix(Permissions): call intl::timezone::set and defer krate group on zenfw.conf.local (
c022cd4) — @tomcdj71 - feat(ZenConfig): default cli.mode=original during install (
8991da0) — @tomcdj71 - fix(ZenConfig): pass CommandArgs to intl::set_timezone zen_invoke (
cca64dc) — @tomcdj71 - fix(Install): persist public.base.url for app install infobox URLs (
85a9324) — @tomcdj71 - fix(Install): show detected IP or configured domain instead of localhost (
6ed230a) — @tomcdj71 - feat(PlatformSettings): persist platform locale settings and print install summary (
695ebff) — @tomcdj71 - fix(PHP): apply 99-krate.ini permissions after template edits (
fce87b2) — @tomcdj71 - feat(SystemUpdate): refresh update snapshot at end of installation (
58ccd8a) — @tomcdj71 - fix(CI): build against older zenfw prefix and fix CI app token input (
80f6b61) — @tomcdj71 - feat(Install): seed SMTP sender from install email and PHP 8.5 stack (
641bf53) — @tomcdj71 - chore(ci): bump github-app-token and upload-artifact actions (
7ac7225) — @tomcdj71 - chore(ci): bump actions/checkout to v6 (
81d661c) — @tomcdj71 - fix(ZenConfig): persist zenfw.command.timeout during install (
34c0019) — @tomcdj71 - fix(PHP): stop pinning APP_ENV in the PHP-FPM pool (
c4a6aed) — @tomcdj71 - fix(ZenConfig): persist krate.conf branch=beta to zenfw.conf.local (
5ef8ce7) — @tomcdj71 - fix(Permissions): declare zenfw_conf_finalize_local_permissions after permission_set (
1b27a26) — @tomcdj71 - fix(Permissions): normalize krate runtime permissions for timers and vault (
9db0cb2) — @tomcdj71 - fix(PHP): restart PHP instead of reload after pool changes (
891c984) — @tomcdj71 - fix(PHP): grant Caddy access to php-fpm socket via listen.acl_users. (
47d6dd2) — @tomcdj71 - fix(Firewall): pre-declare SSH and web ports before nftables default-deny. (
326a6fe) — @tomcdj71 - fix(Firewall): open firewall port 443/tcp for Caddy after nftables init. (
2fb9e22) — @tomcdj71 - fix(HarmonyUI): ensure var/ is writable by krate before Harmony migrations. (
716093e) — @tomcdj71 - feat(Firewall): wire nftables firewall into SSH/FTP setup phase (
4264b8d) — @tomcdj71 - fix(HarmonyUI): expose APP_ENV=prod to php-fpm for HarmonyUI (
c41b5cf) — @tomcdj71 - feat(HarmonyUI): enable HarmonyUI messenger worker after install (
113fb95) — @tomcdj71 - docs: document update_channel setup flow in README (
f9cbc56) — @tomcdj71 - feat(ZenConfig): persist update_channel from krate.conf branch to zenfw.conf.local (
38b0011) — @tomcdj71 - chore: reinit console repo (
049392c) — @tomcdj71 - Initial branch (
a74d37d) — @tomcdj71
web (HarmonyUI) (0af0ad1)
- feat(i18n): add per-user HarmonyUI language preference (
0af0ad1) — @tomcdj71 - chore(repo): stop tracking generated Bazinga dumps and shrink defaults (
6fdab9b) — @tomcdj71 - feat(widgets): add SMART disks and alerts strip widgets (
6b6552f) — @tomcdj71 - fix(settings): move monthly data cap to site-wide admin config (
23691e0) — @tomcdj71 - feat(widgets): add ops dashboard widgets for host and backup status (
a2282f8) — @tomcdj71 - feat(widgets): improve RSS thumbs, layout, and source dots (
7b34d65) — @tomcdj71 - feat(dashboard): add optional weather/calendar/clock status strip (
6bd3399) — @tomcdj71 - fix(widgets): harden weather lat/lon Twig defaults (
c2507dd) — @tomcdj71 - feat(widgets): add dashboard-configurable RSS feeds (
450e49c) — @tomcdj71 - feat(widgets): support AMD/Intel GPU metrics and multi-GPU list (
2a5bf2b) — @tomcdj71 - feat(widgets): add GPU usage widget from telemetry snapshot (
46fe55d) — @tomcdj71 - feat(widgets): add stocks quotes with per-user symbols (
8d83e50) — @tomcdj71 - feat(widgets): add classic month calendar without holidays (
bc68a2e) — @tomcdj71 - feat(widgets): add Open-Meteo weather with per-user location (
2330e79) — @tomcdj71 - feat(widgets): add clock widget UI and local tick logic (
f61d445) — @tomcdj71 - fix(terminal): drop redundant banners and align UI on Terminal (
fd50110) — @tomcdj71 - fix(terminal): target www-data for sudoers when installed as root (
17b7c9f) — @tomcdj71 - feat(terminal): open the shell as the account unix user (
8918563) — @tomcdj71 - feat(terminal): require account password before opening the shell (
2eb3cbd) — @tomcdj71 - fix(terminal): keep PTY helper alive under php-fpm (
5dec643) — @tomcdj71 - feat(terminal): wire live bash PTY for admin web console (
78096b1) — @tomcdj71 - feat(settings): add admin terminal page for dev/beta licenses (
1d571d6) — @tomcdj71 - fix(web): resolve /opt/Krate/bin/zen for system update checks (
9ffb05e) — @tomcdj71 - feat(web): surface pending system updates during free-tier delay (
fbb3ac8) — @tomcdj71 - fix(install): sync access groups when fixtures already created them (
91ee978) — @tomcdj71 - test(license): cover LicenseOverviewService request and status flows. (
2c4a928) — @tomcdj71 - feat(settings): wire license overview to zen license::request. (
bbc452a) — @tomcdj71 - refactor(subdomain): drive install routing from profile, remove wizard toggle (
be30d0f) — @tomcdj71 - fix(subdomain): default app installs to host mode when profile routing is on (
5376f6e) — @tomcdj71 - fix(system-update): use writable log dir for detached zen jobs (
03e80f0) — @tomcdj71 - feat(app-store): reorganize sidebar with expandable footer search (
845139b) — @tomcdj71 - fix(app-store): close install wizard modal on confirm (
b5b8ae6) — @tomcdj71 - fix(app-store): restore green/red state on wizard toggle switches (
a31ceb8) — @tomcdj71 - docs(certificates): note VSFTPD cert sync on primary host change (
82c22da) — @tomcdj71 - feat(certificates): redesign overview panel and issuer display (
b6203d1) — @tomcdj71 - fix(profile): resolve site host from Caddy DOMAIN or root URL (
2791028) — @tomcdj71 - fix(profile): improve routing preference copy and light-mode contrast (
1ba5909) — @tomcdj71 - fix(profile): show subdomain routing toggle in Preferences (
4ecb039) — @tomcdj71 - feat(profile): move subdomain routing toggle to Account Informations (
b01b4cf) — @tomcdj71 - feat(web): add per-user subdomain routing API (
b8d91d3) — @tomcdj71 - refactor(web): reorder settings nav by usage priority (
690ee37) — @tomcdj71 - fix(profile): drop shell row and link to access groups (
6cffba5) — @tomcdj71 - fix(profile): compact Account Informations secret fields (
dd46883) — @tomcdj71 - fix(web): settings nav active state and missing translations (
07744b4) — @tomcdj71 - feat(web): add certificates settings page backed by domain::cert::list (
23c69a9) — @tomcdj71
official apps (e3c0db6)
- refactor(meta): subdomain routing opt-out policy for official apps (
9a4ed23) — @tomcdj71 - chore(Caddy): drop obsolete /etc/caddy/auth/users.json from manifests (
121140b) — @tomcdj71 - chore(Branding): update radarr handler contact to runkrate.com (
7a19bac) — @tomcdj71 - fix(apps): write custom Caddy snippets under path or host tier (
50aa2ef) — @tomcdj71 - fix(wizarr): clone repository using configured update branch (
c330928) — @tomcdj71 - chore(apps): align meta.yaml branch and install UI options (
1c16658) — @tomcdj71 - refactor(apps): migrate *arr manifests to main/beta release branches (
67f4e30) — @tomcdj71 - feat(apps): add version.probes to official app manifests (
257ce73) — @tomcdj71 - fix(rutorrent): rely on lifecycle php_fpm_unit with php-fpm fallback (
5884d2d) — @tomcdj71 - refactor(rutorrent): slim handler to 5 functions and ~150 lines (
16080f2) — @tomcdj71 - fix(rutorrent): prefer php_fpm_unit from lifecycle in _restart_php_fpm (
9e1d972) — @tomcdj71 - fix(rutorrent): restart php-fpm only when SCGI access requires it (
b9e8774) — @tomcdj71 - fix(rutorrent): ensure SCGI access and Novik 5.x plugin compatibility (
c91afe9) — @tomcdj71 - refactor(rutorrent): simplify lifecycle handler (
bc92628) — @tomcdj71 - fix(rutorrent): close awk exit parenthesis in plugin allowlist check (
b9e457b) — @tomcdj71 - fix(rutorrent): filter extension deploy and run initplugins after SCGI (
b223bb8) — @tomcdj71 - fix(rutorrent): preserve WebUI prefs and surface initplugins failures (
3123d4f) — @tomcdj71 - fix(rutorrent): apply Krate patches after apps-extensions plugin deploy (
9f79f0e) — @tomcdj71 - fix(rutorrent): deploy apps-extensions plugins into plugins/ (
3604103) — @tomcdj71 - fix(rutorrent): deploy apps-extensions themes into plugins/theme/themes (
7f42523) — @tomcdj71 - fix(rutorrent): always restart php-fpm and sync Novik app on update (
30769b1) — @tomcdj71 - fix(rutorrent): ensure www-data can reach rTorrent SCGI socket on install (
bdeb8ac) — @tomcdj71 - fix(jellyfin): dedicated handle block for WebSocket subpath proxy (
853c5b5) — @tomcdj71 - fix(ci): use client-id input for create-github-app-token v3 (
b34233e) — @tomcdj71 - fix(jellyfin): render Caddy fragment from app template with path matcher (
871fc44) — @tomcdj71 - fix(emby): use Krate env file and force EMBY_DATA on each config (
6dd3da7) — @tomcdj71 - chore(ci): bump create-github-app-token to v3 (
730e0c0) — @tomcdj71 - chore(ci): bump actions/checkout to v6 (
a7ba0e7) — @tomcdj71 - fix(jellyfin): map beta channel to stable Jellyfin releases (
4dca417) — @tomcdj71 - fix(emby): pass -programdata so server uses user data_dir (
bc44ac0) — @tomcdj71 - fix(rtorrent): run pre script via sh without requiring execute bit (
b7fb662) — @tomcdj71 - fix(jellyfin): verify Users/Public after wizard and enable proxy URI by request (
0f5a240) — @tomcdj71 - fix(tautulli): allow 180s for CherryPy to become active after start/restart (
e1838aa) — @tomcdj71 - fix(rtorrent): point ExecStartPre at official pre script and extend service wait (
4d48822) — @tomcdj71 - fix(tautulli): install release deps via uv pip with filtered requirements (
d46510a) — @tomcdj71 - fix(rtorrent): use oneshot unit for tmux detached session (
9ed9fc4) — @tomcdj71 - fix(jellyfin): do not fail install when playback API key is missing (
d17db3a) — @tomcdj71 - fix(emby): use loopback root URL and tolerate two-phase startup (
3e32288) — @tomcdj71 - fix(deluge): install venv deps with uv pip and split Pillow install (
ec3eaa9) — @tomcdj71 - fix(decluttarr): install deps via uv pip instead of venv::build (
95f4e9c) — @tomcdj71 - fix(byparr): printf env file and soften systemd start before probe (
dd1da54) — @tomcdj71 - fix(rtorrent): use systemd Type=simple for tmux session (
8f7880e) — @tomcdj71 - fix(tautulli): harden uv venv provisioning on Python 3.13 (
549ca6f) — @tomcdj71
community apps (21ceee3)
- chore: init repo (
21ceee3) — @tomcdj71