Commit Graph
5370 Commits
Author SHA1 Message Date
ProxMenuxBot 42b4aa2489 chore(lang): auto-rebuild translation cache
Source: 0beeb7a
Triggered by: push
2026-08-15 15:34:12 +00:00
MacRimi 0beeb7a68b Beta cycle bundle over 1.2.4.1
- **VM/LXC modal** — PVE tags (dots on list cards, editable pills in modal with click-to-edit) using NVIDIA-style hash colour and SAPC contrast; Status tab redesign (single card, always-visible subsections, Edit button, autostart toggle, blue subsection icons); Backups and Firewall tabs now fill the full modal height with sticky headers/notes; stopped VMs no longer shift the metrics grid; mount-point card brightness unified across breakpoints.
- **Disks modal** — Overview / SMART / History / Schedule tabs adopt the VM/LXC modal size and the mobile icon-only tab pattern; SMART attributes table drops the 15-row cap and gains a sticky "View full SMART report" footer; Print/Save-as-PDF collapses to two icons in the report; loose i18n and layout follow-ups.
- **NVIDIA driver installer (#298)** — version picker cross-checks kernel + NVIDIA's Production/New Feature/Legacy branch classification (scraped from `nvidia.com/en-us/drivers/unix/`) + the PCI Device IDs of every host GPU, with a release-count heuristic to keep superseded production branches selectable while dropping Vulkan-beta ones; Recommended follows same-branch head when a driver is installed, Production Branch head on a fresh install; Hardware card now shows installed alongside available driver version.
- **Custom notifications (#297)** — `event_type: "custom"` accepts `title`/`message` at the root or nested under `data`; defensive strip of stray `[TITLE]`/`[BODY]` markers echoed by the AI enhancer.
- **App tab** — new "Exclude from the LXC updates counter" toggle; the CT's aggregate updates badge now sums OS packages plus registered apps (respecting the flag); Docs page updated; App suggestion no longer treats bare OS helper slugs (alpine/ubuntu/debian…) as installable apps.
- **i18n and copy** — Monitor UI available in EN / ES / DE / FR / IT / PT / SV / SK (thanks @vaso73) surfaced as the first entry in the What's New modal with a link to the contributor's profile; ES cleanup pass (`Historial`, `Velocidad de rotación`, `Consumo actual`, `Ejecutar`, `Eliminar`, `Activar`, `Ver contenido`, `Repuesto disp.`, `Registrar`, `Ocultar`, `Descartar`); redundant "Tip: search any Linux/Proxmox command" line removed from the terminal command search across all locales.
2026-08-15 17:33:05 +02:00
github-actions[bot] 34b8c47415 Update AppImage beta build (2026-08-14 18:47:35) 2026-08-14 18:47:35 +00:00
ProxMenuxBot c25f72febe chore(i18n): auto-fill missing translations in messages/{locale}/common.json
Source: f0c8e73
Triggered by: push
2026-08-14 18:45:01 +00:00
MacRimi f0c8e73446 Persist partial i18n progress on transient translator failures 2026-08-14 20:43:44 +02:00
MacRimi 157ab50f9b i18n workflow — expand trigger + fix sk/sv Translate pivots 2026-08-14 20:37:20 +02:00
MacRimi 9eb576f8f3 Fix i18n cleaner regex — add sk/sv Translate pivots 2026-08-14 20:30:21 +02:00
MacRimi f6da553aeb Fix i18n cleaner regex — add sk/sv Translate pivots 2026-08-14 20:27:06 +02:00
ProxMenuxBot cf0c21eff3 chore(i18n): auto-fill missing translations in messages/{locale}/common.json
Source: 99ad69e
Triggered by: push
2026-08-14 18:20:47 +00:00
MacRimi 99ad69e8cf Event-only modal cache + Settings edit gating + ES i18n polish
Modal caches now refresh on events only — the periodic prewarmer runs one-shot at startup, mount points split into static/runtime endpoints, and backups get a client 6-hour gate. Updates tab shows post-apply feedback and the script terminal no longer closes the parent modal. Settings adds edit gating on 3 cards with the 3-level contrast rule applied consistently. ES translation batch (~25 fixes) and What's New for 1.2.4.1-beta refreshed.
2026-08-14 20:17:45 +02:00
ProxMenuxBot 452902bd9a chore(i18n): auto-fill missing translations in messages/{locale}/common.json
Source: e1fb203
Triggered by: push
2026-08-13 21:54:33 +00:00
MacRimi e1fb203e46 Merge branch 'develop' of https://github.com/MacRimi/ProxMenux into develop 2026-08-13 23:53:03 +02:00
MacRimi ac2c28ad2c Update build-i18n-messages.yml 2026-08-13 23:52:53 +02:00
ProxMenuxBot 8481e588b2 chore(i18n): auto-fill missing translations in messages/{locale}/common.json
Source: d9944ed
Triggered by: push
2026-08-13 21:50:50 +00:00
MacRimi d9944edf5e Update build_i18n_messages.py 2026-08-13 23:49:17 +02:00
MacRimi 037421d762 Instant VM/LXC modals via bulk hydration + server prewarmer
Backend keeps every guest's modal payload (details, backups, apps, schedule, mount points) warm in-memory and exposes them through a single `/api/vms/modal-cache-all` endpoint. The dashboard hydrates its entire modal cache from that one request on page load, so opening any guest — first click or after coming back later — renders instantly. Replaces ~84 per-guest fetches with 1.
2026-08-13 22:35:13 +02:00
MacRimi 3fe9a49ebc Update network-flow.tsx 2026-08-12 17:28:12 +02:00
MacRimiandGitHub 805003d811 Merge pull request #292 from Vaso73/codex/i18n-vms-lxcs-docs-sk
docs(i18n): translate Slovak VM/LXC app docs
2026-08-12 09:34:46 +02:00
VAIO73 bc88a34390 docs(i18n): translate Slovak VM LXC app docs 2026-08-12 09:17:54 +02:00
MacRimiandGitHub ef859d5ec3 Merge pull request #291 from Vaso73/codex/iframe-frame-ancestors-227
fix(security): allow trusted frame ancestors
2026-08-11 20:14:39 +02:00
MacRimi 55a95a2346 docs(monitor): new App + Updates sub-pages for VMs & LXCs with i18n 2026-08-11 20:14:17 +02:00
VAIO73 c81f552ed0 fix(security): allow trusted frame ancestors 2026-08-11 10:28:48 +02:00
MacRimi d2c7be9a32 Update README.md 2026-08-10 19:22:47 +02:00
MacRimi bf6c580877 docs: refresh CONTRIBUTING + README for coordination flow + Monitor section 2026-08-10 19:15:01 +02:00
MacRimiandGitHub 3dc263f9fb Merge pull request #289 from Vaso73/codex/i18n-slovak-polish-277
i18n: polish Slovak labels and locale parity
2026-08-10 17:19:53 +02:00
MacRimiandGitHub 05e5277ae5 Merge pull request #288 from Vaso73/fix/fwbr-udev-rule-order
fix(post-install): run fwbr udev rule after systemd
2026-08-10 17:16:43 +02:00
VAIO73 c2ba648ebe i18n: polish Slovak labels and locale parity 2026-08-10 16:59:33 +02:00
VAIO73 2bfa84d5e0 fix(post-install): run fwbr udev rule after systemd 2026-08-10 16:29:54 +02:00
MacRimi d6162af020 i18n: ES catalog polish + AppImage 1.2.4.1-beta rebuild 2026-08-10 15:09:14 +02:00
MacRimiandGitHub c4b8ad65da Merge pull request #287 from yeager/agent/swedish-translation-review
Review Swedish CLI and Monitor translations
2026-08-10 14:53:32 +02:00
MacRimi a056d7e0dc Update common.json 2026-08-10 14:39:52 +02:00
Daniel Nylander 87bda3bbb6 Review Swedish CLI and Monitor translations 2026-08-10 14:19:51 +02:00
MacRimi c1bd4b3403 Update common.json 2026-08-10 14:18:22 +02:00
MacRimi f2420d9978 i18n polish + Swedish wired + roadmap slim + AppImage 1.2.4.1-beta
## i18n

- Swedish (sv) wired end-to-end: `MESSAGE_CATALOG` in `provider.tsx` now imports `sv/common.json`; `SUPPORTED_LANGUAGES` reordered as English + alphabetical native and all eight locales marked complete.
- Settings → Interface language: the per-locale status cards grid is retired now that all eight locales are populated end-to-end; the dropdown selector is the only control.
- CLI change-language dialog (`scripts/menus/config_menu.sh`) picks up Swedish and matches the Monitor ordering.
- Spanish catalog: label polish across the dashboard — *VM y LXC activos* / *11 VMs* / *11 detenidos*, LXC modal tabs shortened to *App / Actualiz. / Montajes / Copias*, *Limpiar / Cerrar* replacing the wrong *Claro / Cerca* in terminal controls, *En ejecución / Ejecutar* replacing the literal *Correr*.
- Cross-locale normalisation across ES / DE / FR / IT / PT / SK / SV: *OK* / *Proxmox System Dashboard* / *Warn* labels stay consistent, *AVG / MAX / MIN* kept verbatim as universal abbreviations so the stats row no longer overflows.
- Tailscale brand preserved verbatim across ES / FR / IT / PT — previous machine-translated variants like *"escala trasera"* / *"à grande échelle"* restored.

## Docs

- `ROADMAP.md` rewritten as a short invitation to the [ProxMenux Roadmap project board](https://github.com/users/MacRimi/projects/1). `ROADMAP.es.md` removed — it mirrored the same outdated version-milestone plan and the docs site keeps the Spanish surface for users who need it.
- `release.md` annotated with nine pending sections for the v1.2.4.1 beta cycle.

## AppImage

- `ProxMenux-1.2.4.1-beta.AppImage` replaces the previous `ProxMenux-1.2.4.AppImage`. Sidecar `ProxMenux-Monitor.AppImage.sha256` regenerated.
2026-08-10 13:23:26 +02:00
MacRimi 2901b22be6 update ROADMAP.md
The document now points to the ProxMenux Roadmap project on GitHub, where per-item status, ownership and descriptions live. The previous version-milestone plan (v1.2.2-beta / v1.2.3-beta / v1.3.0) is retired in favour of pillar-based tracking on the board.

ROADMAP.es.md removed — it mirrored the same outdated content and the public docs site keeps the Spanish surface for users who need it.
2026-08-10 11:59:47 +02:00
MacRimiandGitHub 7b2d9a3268 Merge pull request #284 from Vaso73/fix/openai-compatible-ai-models
fix(notifications): respect OpenAI-compatible model aliases
2026-08-10 11:33:32 +02:00
MacRimi 9dae948a7c i18n: fill 7 locales, preserve brand names, manual quality review
Rebuild of the 7 supported translation catalogs (ES/DE/FR/IT/PT/SK/SV) covering Monitor (`AppImage/messages/<lang>/common.json`, 3903 keys each) and CLI (`lang/<lang>.json`, 5272 keys each). Swedish (sv) is added as a new locale end-to-end.
2026-08-10 09:44:39 +02:00
VAIO73 66a1781298 fix(notifications): respect OpenAI-compatible model aliases 2026-08-09 13:56:40 +02:00
MacRimiandGitHub 504d34a3ee Merge pull request #283 from Vaso73/fix/vzdump-webhook-truncation
fix(notifications): preserve full vzdump webhook messages
2026-08-09 11:00:46 +02:00
Codex 3d83d9d561 fix(notifications): preserve full vzdump webhook messages 2026-08-09 10:52:12 +02:00
MacRimi 5c33852a65 feat(i18n): add Swedish support + include Slovak in auto-fill defaults
Two related changes to the translation infrastructure:

1. Add Swedish (sv) as a supported locale in both the CLI and Monitor
   translation systems. Inspired by PR #121, which arrived before the
   current auto-generated cache layout existed.

2. Include Slovak (sk) in the default auto-fill target set. Guardrail #1
   in build_i18n_messages.py never overwrites a key whose target value
   differs from EN, so Vaso73's curated Slovak strings stay intact —
   auto-translation only fills keys that are still on the English
   fallback. Trade-off accepted: sk users see decent machine translation
   for new keys immediately instead of raw English while human curation
   catches up, and Vaso73 keeps full ownership of the wording via
   follow-up PRs.

Changes:
- AppImage/lib/i18n/languages.ts: add "sv" to LanguageCode + register
  in SUPPORTED_LANGUAGES.
- AppImage/messages/sv/common.json: stub — will be filled by the i18n
  workflow on the local bootstrap.
- .github/scripts/build_translation_cache.py: add "sv" to
  DEFAULT_LANGUAGES.
- .github/scripts/build_i18n_messages.py: add "sk" and "sv" to
  DEFAULT_LANGUAGES; update comments to explain the sk decision.
- .github/workflows/build-i18n-messages.yml: default input includes
  sk + sv; comments updated to match.
2026-08-09 10:35:03 +02:00
MacRimiandGitHub a2740b6873 Merge pull request #282 from Vaso73/i18n/slovak-lxc-updates-app-editor
i18n(lxc): localize updates and fix terminal completion
2026-08-09 10:19:08 +02:00
Codex 547942cac8 fix(terminal): handle completed scripts without websocket error 2026-08-09 09:50:18 +02:00
Codex 8a5f7a4cb8 i18n(lxc): localize update and application management flows 2026-08-09 09:08:52 +02:00
MacRimi d2a3720ec4 ci(i18n): add auto-translation workflow for Monitor messages catalog
Adds .github/scripts/build_i18n_messages.py and its companion workflow
build-i18n-messages.yml, so keys added to AppImage/messages/en/common.json
propagate automatically to es/de/fr/it/pt on push.

Guardrails:
- Never overwrites a key whose target value differs from EN, protecting
  human-curated locales (Vaso73's sk is excluded from the default set
  entirely).
- {placeholder} tokens are extracted to opaque tokens before the
  translator sees the text and restored afterwards, so interpolation
  keys stay intact regardless of provider behavior.

Mirrors the pattern of build-translation-cache.yml (CLI translations)
and reuses its providers (googletrans / google-web / appimage), so the
CI environment stays uniform between the two workflows.

First run will bootstrap ~3800 keys × 5 locales; subsequent runs only
process new keys added to en/common.json.
2026-08-09 01:31:30 +02:00
MacRimiandGitHub 732f1e8ef7 Merge pull request #281 from MacRimi/feature/lxc-updates-refresh
Feature/lxc updates refresh
2026-08-09 01:02:22 +02:00
MacRimi e05b4e94dc chore(post_install): bump setup_persistent_network FUNC_VERSION to 1.2
Bump FUNC_VERSION from 1.1 to 1.2 in the setup_persistent_network wrapper
for both customizable and auto post_install variants.

Rationale:
The generator pmx_setup_persistent_network in utils-install-functions.sh
now emits `.link` files with Kind=!bridge (PR #280), so existing installs
need their `.link` files regenerated to pick up the fix. Bumping the
wrapper's FUNC_VERSION triggers the Monitor + CLI post-install version
tracker to surface persistent_network as a pending update, prompting
users to re-run the optimization — which regenerates the files with the
fix applied.

Not touched:
- network_menu.sh copy of setup_persistent_network: uses a simpler
  register_tool() that doesn't track versions (menu-driven invocation
  is on-demand, not tracked as auto-update-eligible by design).
2026-08-09 00:54:22 +02:00
MacRimi 05476b99c6 i18n(vmLxc): extract new LXC Updates + Options + App editor strings (EN only)
Extracts 212 hardcoded English strings from virtual-machines.tsx and
lxc-app-panel.tsx into AppImage/messages/en/common.json, matching the
i18n pattern established by PR #277.

Added namespaces under vmLxc:
- options (14 keys): Snapshot / Restart / Backup storage / Edit / Cancel / Save
- scheduled (22 keys): Scheduled updates, Frequency, Cron, target, Delete
- cronChip (6 keys): variants + scope for external cron detection
- cronPresets (6 keys): Hourly / Daily / Weekly / Monthly picker labels
- updates (58 keys): OS packages, Helper info, Apply buttons, custom
  command editor, footer combined buttons
- tabs (6 keys): tab labels
- appEditor (105 keys): app registration form — installed_via methods,
  upstream source selectors, ports, form field labels + placeholders

Other locales (sk/de/fr/it/pt/es) fall back to English via the provider's
built-in fallback until translations are contributed.

Follow-up: i18n coverage issue for translation work in the other locales.
2026-08-09 00:49:44 +02:00
MacRimi 06f41f5792 feat(lxc-updates): revamp Updates + Options card + curated hints
Updates tab
- Unified OS + Application update card with per-section Apply buttons
  and a combined "Apply OS + <app>" footer button
- Helper-scripts install detection: uses helper_slug from managed_installs
  cache (hostname fuzzy-match against helpers_cache) so the button
  surfaces even when /usr/bin/update was removed
- Runs the community-scripts helper INSIDE the CT via pct exec so
  build.func picks the silent update path (PHS_SILENT=1) instead of the
  install menu — works with and without /usr/bin/update
- HELPER_SLUG env passthrough from backend to apply_updates.sh: falls
  back to constructing the ct/<slug>.sh URL when the CT no longer
  carries the marker file
- Post-apply state refresh via managed_installs.check_for_updates(force)
  in the /applied hook so the badge updates without a manual reload

Options card
- Rewrote as view / edit mode split with a single Edit button
- Unified apply defaults (snapshot + storage + restart) shared by
  manual and scheduled runs
- Scheduled updates (M5): cron picker + preset dropdown + What-to-update
  target + Delete schedule button, wired to a background scheduler thread
  that fires apply_updates.sh headless with the schedule's env vars
- External host cron detection with variant + scope reporting
  (tteck-legacy / community-scripts / custom, OS-only), shown as an
  informational chip only in edit mode

App tab editor
- Multi-app registration with per-app upstream tracking method
  (github / http_json / docker_hub)
- Card-contrast pattern in edit mode (bg-card + bg-background inputs)
- Auto-heal for missing installed_version via alt_detectors +
  file_fallbacks

Curated tracking hints (M6)
- Add http_json upstream for Plex (plex.tv API)
- Add binary+github hints for Emby (MediaBrowser/Emby.Releases) and
  PhotoPrism (photoprism/photoprism)
- Extend CI merge whitelist with upstream_type / upstream_url /
  upstream_json_path / docker_image

Tab reorder
- LXC modal tabs: Status | App | Updates | Mounts | Backups | Firewall

apply_updates.sh
- New helper execution path: parse ct/<slug>.sh URL, run inside CT
  with PHS_SILENT=1, respecting HELPER_SLUG fallback when
  /usr/bin/update is missing
2026-08-09 00:49:44 +02:00
MacRimiandGitHub fb8b41b445 Merge pull request #279 from Vaso73/feature/fail2ban-trusted-networks
Add trusted IP and network management to Fail2Ban
2026-08-09 00:48:16 +02:00