Commit Graph
98 Commits
Author SHA1 Message Date
ProxMenuxBot 2a17ea84ac chore(lang): auto-rebuild translation cache
Source: 8e321e6
Triggered by: push
2026-09-28 07:51:23 +00:00
ProxMenuxBot cb7609bb05 chore(lang): auto-rebuild translation cache
Source: 5a4fab8
Triggered by: push
2026-09-27 20:07:32 +00:00
VAIO73 ec391246a1 fix(oci): clean up owned host firewall rules 2026-09-27 21:44:47 +02:00
ProxMenuxBot b1e11e7666 chore(lang): auto-rebuild translation cache
Source: 52bb982
Triggered by: push
2026-09-27 19:18:59 +00:00
MacRimi 52bb982721 Clarify the host-monitor restore notice 2026-09-27 21:18:15 +02:00
ProxMenuxBot 72d3e6aefe chore(lang): auto-rebuild translation cache
Source: f3c4959
Triggered by: push
2026-09-27 19:03:01 +00:00
MacRimi f3c4959fa4 OCI catalog verification, console start marks and log cleanup 2026-09-27 21:02:16 +02:00
ProxMenuxBot 11b97d1aea chore(lang): auto-rebuild translation cache
Source: c4c654b
Triggered by: push
2026-09-27 18:15:37 +00:00
ProxMenuxBot 73edc51f1a chore(lang): auto-rebuild translation cache
Source: 4d370d3
Triggered by: push
2026-09-27 18:13:58 +00:00
VAIO73 1d445f7064 i18n: polish Slovak OCI and terminal descriptions 2026-09-26 20:21:15 +02:00
MacRimi 8ab72b8bcc fix(lang): curate the OCI diagnostic strings from #389 2026-09-26 18:39:30 +02:00
ProxMenuxBot 8610f66fe1 chore(lang): auto-rebuild translation cache
Source: 8d9f38e
Triggered by: push
2026-09-26 16:32:20 +00:00
ProxMenuxBot c7b052c424 chore(lang): auto-rebuild translation cache
Source: dd4bcfa
Triggered by: push
2026-09-26 14:59:51 +00:00
ProxMenuxBot 1bf792adce chore(lang): auto-rebuild translation cache
Source: f7266e7
Triggered by: push
2026-09-25 23:27:40 +00:00
ProxMenuxBot 174f178f5b chore(lang): auto-rebuild translation cache
Source: ace445b
Triggered by: push
2026-09-25 20:31:19 +00:00
MacRimi e8a7ba6f47 Merge remote-tracking branch 'origin/develop' into beta/1.2.6.2 2026-09-25 21:51:23 +02:00
MacRimiandClaude Opus 5.5 4437a671d2 ProxMenux 1.2.6.2-beta: OCI containers in the Monitor, docs and fixes
OCI manager Apps
- App tab: containers installed from an OCI image are identified from their
  installation record; the application and image versions are shown and an
  update is detected by image digest; repository link; Refresh data.
- Updates tab for OCI containers: Update and Recreate run the same flow as the
  OCI menu in the Monitor terminal; the pre-update backup can be kept in a
  backup storage; scheduled image updates with an optional minimum age.
- Logs tab: console output of the application, kept on the host
  (lxc.console.logfile + logrotate) and followed live.
- The Proxmox console opens a shell (cmode: shell) when the image has one.
- A damaged image download is fetched again before failing.
- Multi-container applications open at their LAN address; volume mount
  points on block storage report their usage.

Monitor
- Proxmox notifications are delivered to a loopback-only HTTP listener when
  HTTPS is enabled, so they no longer fail certificate verification.
- Log persistence counts recurring patterns only; an ended burst is not
  reported as persistent and its warning clears on its own (#386).
- Proxmox notification config backups are deduplicated and capped at three.
- The update icon on the Apps page opens the container on its Updates tab.
- Version 1.2.6.2-beta and its release notes in every Monitor language.

Docs
- OCI manager Apps and Audit & Report rebuilt as per-page message files,
  with a new page for OCI containers in the Monitor.
- Seven pages fixed where rich-text tags were missing from t.rich.

Translations
- Spanish fixes across the OCI engine, the Monitor and the TUI menus.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 21:51:12 +02:00
ProxMenuxBot 77080367bb chore(lang): auto-rebuild translation cache
Source: d468b54
Triggered by: push
2026-09-25 19:43:54 +00:00
ProxMenuxBot 386d33df6e chore(lang): auto-rebuild translation cache
Source: 2124b97
Triggered by: push
2026-09-23 20:07:55 +00:00
ProxMenuxBot dee18df711 chore(lang): auto-rebuild translation cache
Source: d415c55
Triggered by: push
2026-09-22 21:26:18 +00:00
MacRimiandClaude Opus 5 f3bda28338 refactor(oci): remove the shell entry point nothing runs
`oci/proxmenux-oci.sh` was installed on every Proxmox host and used on
none of them. The menu entry goes straight to the orchestrator:
scripts/oci/oci_manager_apps.sh runs `python3 -m proxmenux_oci` with
PYTHONPATH pointing at the engine.

Its only remaining caller was a message telling the reader to open it on
the Proxmox host — which is not how anyone gets in, and is what sent one
there to run it. That message now names the menu entry.

It could not be fetched and run either: it needs requirements.txt and
src/ beside it, so `wget | bash` resolved its own directory to the
working directory and failed on a path nobody chose. Making that work
would mean writing a second installer next to the one that already
ships the engine.

What it did offer was a virtualenv for a contributor generating the
catalog. The README now gives the direct invocation and names the two
distribution packages it needs.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-22 23:22:51 +02:00
MacRimiandClaude Opus 5 7e39aa550c fix(i18n): repair strings the translator damaged in the TUI catalogue
Three faults, all user-visible in the released catalogue.

The context prompt survived into 13 translations. A reader of the
Italian TUI was told "Messaggio tecnico per Proxmox e IT.Traduzione:
impossibile aggiornare initramfs." — the instruction given to the
provider, printed as if it were the message. One in French, eight in
Italian, four in Portuguese. The text after the prefix is correct, so
only the prefix goes.

Fifteen strings carried HTML entities where the source had a plain
character: "Adblock &quot; DNS", "Affari &amp; ERP".

Three product names had been translated as words — "Vaultwarden Courbe
Web" in French, where courbe means curve — and now keep their published
spelling. Two German strings said Kunden, a commercial customer, for an
OAuth client. Existing translations of the category labels and the
descriptive taglines are left as they are.

Twelve strings had no value in some locale and were retried on every
run, about thirty-five minutes a time. A fresh extraction now reports
nothing pending in any of the seven.

The Monitor catalogues are clean: they send no context prompt.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-22 22:08:34 +02:00
MacRimiandClaude Opus 5 eafc472279 fix(i18n): keep {placeholders} out of the translator in the TUI cache
The Monitor's generator protects them; this one did not, so a provider
read the word inside the braces and translated it. "{count}" came back
as "{conta}" in Portuguese and "{počet}" in Slovak, and the consumer —
finding no placeholder to substitute — fell back to English, which is
every message the recent batches introduced.

The token carries no underscores: argos splits on them and hands back
"PMX PH 0".

Two further fixes this depends on:

- protect_catalog_titles rebuilt the glossary pattern without the word
  boundaries the module-level one has, so a short term matched inside
  longer words once the catalogue was loaded.
- CT and VM join the glossary. Read as initials they get reordered —
  "CT" comes back as "TC" in Spanish — naming something Proxmox does not.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-22 21:45:54 +02:00
ProxMenuxBot 9c9bc7d15b chore(lang): auto-rebuild translation cache
Source: 24a2557
Triggered by: push
2026-09-22 18:04:01 +00:00
ProxMenuxBot 90a925f88c chore(lang): auto-rebuild translation cache
Source: 9769988
Triggered by: push
2026-09-22 17:13:03 +00:00
MacRimiandClaude Opus 5 bcabcb618c feat(oci): run official container images as native LXC containers
Adds the OCI manager: an engine that turns a Docker Compose file into an
LXC definition, a catalog of 365 applications drawn from LinuxServer.io
and other container image sources, and a per-instance registry recording
what each container was built from. Reachable from the main menu.

Catalog text is translated like every other string in the project: the
taglines go through translate() and land in lang/*.json, so the entries
read in all eight languages instead of only English.

Translation cache builder:
- a failed translation leaves the key absent rather than writing English,
  which previously made the string count as translated forever
- a result identical to a 3+ word source is rejected, catching a provider
  that silently returns the text it was given
- strings that are nothing but glossary terms keep their source spelling
  instead of being discarded as failures
- no backoff between attempts when the provider is deterministic
- application names are protected so "HAOS One" survives translation
- argos joins the provider list, and the workflow reads the OCI sources

Audit & Report:
- findings that moved in the wrong direction between runs are reported
  alongside the ones that improved
- an accepted risk can carry a review date and is flagged when it falls due
- backup checks explain in plain language what they looked at and what to
  do next

Monitor:
- disks can be excluded from periodic reads, and an idle disk says so
  instead of showing a stale temperature
- per-disk identity survives a controller or enclosure change
- scheduled Borg backups resolve their SSH key from the repository entry
- PVE upgrades log the package list and the resulting dpkg changes

The web build no longer copies scripts/ into public/: the documentation
links to GitHub, so nothing read that folder.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-22 18:24:59 +02:00
ProxMenuxBot 4f1d70775f chore(lang): auto-rebuild translation cache
Source: 94c3da0
Triggered by: push
2026-09-22 14:57:53 +00:00
ProxMenuxBot f63362b460 chore(lang): auto-rebuild translation cache
Source: a6ca3d4
Triggered by: push
2026-09-22 14:41:17 +00:00
ProxMenuxBot 704eb3f9fb chore(lang): auto-rebuild translation cache
Source: e318914
Triggered by: push
2026-09-21 08:51:05 +00:00
ProxMenuxBot 86d6ae4dec chore(lang): auto-rebuild translation cache
Source: 702c774
Triggered by: push
2026-09-18 16:40:32 +00:00
ProxMenuxBot dede876f0b chore(lang): auto-rebuild translation cache
Source: 256f323
Triggered by: push
2026-09-16 21:25:52 +00:00
MacRimi 256f3232e4 Offer only NVIDIA drivers that can drive the GPU, and prove it before removing the working one 2026-09-16 23:19:39 +02:00
ProxMenuxBot 0284a7e7da chore(lang): auto-rebuild translation cache
Source: 8e0d4ff
Triggered by: push
2026-09-11 06:38:18 +00:00
MacRimi 023350d7e1 apply sentence spacing to every translation provider 2026-09-09 09:03:09 +02:00
ProxMenuxBot c6fde98a80 chore(lang): auto-rebuild translation cache
Source: 53c27f8
Triggered by: push
2026-09-09 06:56:26 +00:00
ProxMenuxBot 68348e0558 chore(lang): auto-rebuild translation cache
Source: da8a480
Triggered by: push
2026-09-08 19:07:06 +00:00
MacRimiandClaude Opus 5 da8a480eff Add audit and reports page, and a change journal
ProxMenux modifies the host: it rewrites configuration files, installs packages, enables services. Until now nobody could say afterwards what had changed, and showing the script does not answer that question — a four-hundred-line function may alter two values, and the reader has no way to know which two. This adds the two halves of an answer.

The change journal records what ProxMenux does as it does it. Eleven bash primitives capture the previous state, apply the change and record it in the same step, writing to a spool that the Monitor reads back. One hundred and thirteen functions across twenty-five scripts are instrumented, covering post-install, shared storage, security tooling, container conversions, disk operations and the PVE 8 to 9 upgrade path. The page shows the difference — rotate 7 becoming rotate 14 — and never the script. Restore and backup scripts are deliberately left out: a restore puts the host back to a state some other script already recorded.

The Audit and reports page answers the other half: what state is this host in, regardless of who put it there. Forty-three checks across seven areas read the host and classify each result as critical, warning, observation, conformant, unverified or not applicable, with the evidence they read attached to each one. A declared policy lets the reader say what this particular host is expected to do — which guests must have a backup, which storages are essential — so the report judges the host against its own intent rather than a generic template. An inventory records the hardware, network and guest topology behind those readings, a comparison shows what moved between two runs, and six report profiles produce a printable document scoped to what the reader needs. Everything is available in the eight supported languages.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 21:06:04 +02:00
ProxMenuxBot ae75508eff chore(lang): auto-rebuild translation cache
Source: 1c44842
Triggered by: push
2026-09-08 18:41:22 +00:00
ProxMenuxBot fe9afd90c4 chore(lang): auto-rebuild translation cache
Source: 34041b8
Triggered by: push
2026-09-08 18:39:33 +00:00
ProxMenuxBot 64d1a86fe5 chore(lang): auto-rebuild translation cache
Source: 86305cf
Triggered by: push
2026-09-03 09:56:47 +00:00
ProxMenuxBot d10acbc895 chore(lang): auto-rebuild translation cache
Source: 91b4200
Triggered by: push
2026-09-02 12:44:36 +00:00
ProxMenuxBot 0fe32d2842 chore(lang): auto-rebuild translation cache
Source: fcfe8da
Triggered by: workflow_dispatch
2026-08-26 18:53:07 +00:00
ProxMenuxBot b71dd65898 chore(lang): auto-rebuild translation cache
Source: 4615820
Triggered by: push
2026-08-25 17:02:44 +00:00
MacRimi 46158209f1 fix: improve host diagnostics, storage handling, and maintenance workflows
- add zero-downtime Proxmox TLS certificate refresh from the Security panel (#307)
- classify storage availability independently from missing capacity information (#309)
- update ZFS ARC sizing and safely reconcile conflicting module configurations
- preserve and restore migrated ZFS settings without overwriting later administrator changes
- stop memory optimization from forcing the kernel overcommit policy
- correlate multi-line OOM events and identify the affected LXC, cgroup limits, swap and killed process
- add selectable Bash prompt path styles and clearer shell activation guidance
- protect technical names during automatic translation and correct localized terminology
- update the Coral and VM/LXC Apps and Updates documentation, translations and screenshots
2026-08-25 18:48:39 +02:00
ProxMenuxBot d62f8c6bfd chore(lang): auto-rebuild translation cache
Source: 0251f77
Triggered by: push
2026-08-23 10:48:14 +00:00
ProxMenuxBot 812ca1ba7d chore(lang): auto-rebuild translation cache
Source: 9bf0ff9
Triggered by: push
2026-08-19 09:41:32 +00:00
ProxMenuxBot 9f66c004a2 chore(lang): auto-rebuild translation cache
Source: b5476c7
Triggered by: push
2026-08-17 10:08:00 +00:00
ProxMenuxBot 11e030b9de chore(lang): auto-rebuild translation cache
Source: c5d717c
Triggered by: push
2026-08-16 15:54:04 +00:00
ProxMenuxBot ec129b8262 chore(lang): auto-rebuild translation cache
Source: 698c89f
Triggered by: push
2026-08-16 08:34:42 +00:00
ProxMenuxBot 42b4aa2489 chore(lang): auto-rebuild translation cache
Source: 0beeb7a
Triggered by: push
2026-08-15 15:34:12 +00:00