Commit Graph
1595 Commits
Author SHA1 Message Date
martino db0e609259 fix(vm): repair Synology loader downloads and extraction 2026-10-16 18:28:29 +02:00
MacRimi 4e572b8c21 Merge branch 'develop' into feature/zram-memory-profile 2026-10-16 17:27:04 +02:00
MacRimiandGitHub ebce0b8511 Merge pull request #458 from f3rs3n/fix/vm-iso-downloads
fix(vm): reject failed ISO downloads and repair image sources
2026-10-16 17:14:53 +02:00
martino b55eca753d test(vm): keep ISO storage isolation in fixtures 2026-10-16 16:28:23 +02:00
Gabriel Gonzalez Pineda 3ad7407e07 fix(post-install): prioritize ZRAM ahead of disk swap 2026-10-16 15:12:14 +01:00
martino f07dbfe10f fix(vm): reject failed ISO downloads and repair image sources 2026-10-16 15:42:58 +02:00
martino 84eb6d2167 fix(vm): repair Cloud-Init helper links and download checks 2026-10-16 14:36:24 +02:00
MacRimi f5d2074a9a label OCI manager Apps as a Technology Preview, as Proxmox VE does
- OCI manager Apps carries the Technology Preview label that Proxmox VE gives to application containers from OCI images, in the main menu, the engine windows, the menu search, the message at the end of each installation, the release notes and the documentation.
- The documentation explains that the label refers to the Proxmox VE support it runs on, not to the ProxMenux engine, and stays until Proxmox VE marks it as stable.
- Spanish for the new message; the other languages are left to the translation bot.
2026-10-15 22:28:57 +02:00
MacRimi 89fdfd0952 fix: notification history, Ctrl+D in web terminals, repository and VFIO rule fixes, translation corrections
- Notification settings show the last 20 notifications with the result of each send, the error when one failed and every daily digest run, also on days with nothing to send; the history is read without the flag the API never returned, and the page does not offer to erase it, as Audit & Report reads it.
- The Ctrl menu of the three web terminals sends Ctrl+D, which ends a text pasted in the terminal, also from a phone or a tablet.
- The repository check lists every Proxmox VE or Enterprise Ceph repository whose suite does not match the installed version, with its channel and file, and says where to disable it; repository addresses are never shown.
- Adding an NVIDIA GPU to a VM writes its VFIO udev rule again when it is missing or was edited, and the pre-check counts a missing rule as a pending host change.
- New texts in English and Spanish, modelled in the translation steady-state test, and the notifications docs page describes the history section.
- Corrected the automatic translations of the new LXC update and power control texts, and the start, shutdown, reboot and stop buttons of VMs and LXCs in German, French, Portuguese and Swedish.
- Tests for the history panel, the terminal Ctrl+D, the repository message and the VFIO rule.
2026-10-15 18:30:53 +02:00
VAIO73 3e806afe8c fix: wait for VM power tasks before completing controls 2026-10-15 04:29:26 +00:00
VAIO73 664ef981e5 fix: separate LXC package checks from installation 2026-10-15 03:49:58 +00:00
Gabriel Gonzalez Pineda 51ed84f9b1 feat(post-install): add optional zram profile and metrics 2026-10-15 00:28:52 +01:00
VAIO73 638552e5f8 fix: preserve verified LXC state before a failed start 2026-10-14 17:51:53 +00:00
VAIO73 3489dc0530 fix: preserve update observations for stopped LXC guests 2026-10-14 17:51:53 +00:00
MacRimi cc12c625a6 install from a hand-written oci-compose; Log2RAM journal fix
OCI manager Apps
- "Install an image that is not in the catalog" reads an oci-compose from a file of the host or from an address.
- A file written by hand states the image, its ports, variables and volumes, and what the installation asks; the rest is completed when it is read. A complete file, or the record of an installation, is installed as it is, and of a record only the template is used.
- Errors name the field they are in, also on a host without python3-jsonschema.
- oci/README.md describes the engine and the oci-compose block by block, with two examples in oci/examples/.
- The documentation page of the option covers it, in English and Spanish.

Log2RAM (reported by @f3rs3n)
- The sync removes the old active journal file from the disk copy, so a boot no longer restores it and journald deletes its oldest archives first. Log2RAM optimization 1.7; it takes effect from the next reboot.

Translations
- The bot keeps "oci-compose" as written.
- Spanish texts for the new option and for the Log2RAM notice.
2026-10-12 22:29:08 +02:00
MacRimi bff791581c fix(gpu): changing the mode of a GPU leaves the other devices of its slot in their VM 2026-10-12 12:12:59 +02:00
MacRimi 5f3729568e fix(post-install): updating optimizations of both flows prints only its steps 2026-10-12 01:15:39 +02:00
MacRimi 873a3cd8e2 fix(i18n): translate the search texts and review the new translations 2026-10-11 14:21:59 +02:00
MacRimi bbec8d34d1 fix(menu): the search asks for the name or part of the option or of the application 2026-10-11 13:27:47 +02:00
MacRimi 0fd3be15c1 feat(menu): search options and applications from the main menu
The main menu opens with a search that finds an option of ProxMenux, an application of the OCI catalog or a Helper-Script by its name or by related words, in that order, and by category after the names.

Every result opens what its name says and nothing is run by the search itself: a script starts at its first screen, an application opens its page, an option of the post-install or a system utility opens its list with it marked, and an option that lives inside a menu is opened by that menu, which stays behind it.

The menus take the option to open as an argument and behave as before without one. The Helper-Scripts catalog is kept on the host and refreshed once a day. The main menu, the lists of OCI manager and the Helper-Scripts menu share the same height.
2026-10-11 13:26:23 +02:00
MacRimi 8b8fed2564 feat(helper-scripts): an addon runs on the host or inside an LXC, as its catalog says
An addon is run where the catalog lists it: on the Proxmox host, inside an LXC chosen from a list, or wherever is chosen when it can be both. The LXC is started when it is stopped, and OCI containers are left out. Until now every addon ran on the host.

A script is downloaded whole before anything runs, so a failed or empty download runs nothing. Descriptions and notes the catalog writes in HTML are shown as plain text.

The menu opens one script given as argument, and is as tall as the main menu.
2026-10-11 13:26:23 +02:00
MacRimi 07713d5365 fix(monitor): write Proxmox's notification settings only while /etc/pve is mounted
- Nothing is written under /etc/pve unless it is the mounted cluster
  filesystem; a Monitor that starts while pve-cluster is being restarted
  waits for it and registers its webhook afterwards.
- The Monitor service is ordered after pve-cluster.service.
- The settings are written only when they have to change. The copies
  taken before a change are kept in
  /usr/local/share/proxmenux/backups/pve-notifications, and the ones left
  in /etc/pve by earlier versions are moved there.
- Uninstalling the Monitor removes its target and matcher from Proxmox.

Reported in #427.
2026-10-08 17:14:36 +02:00
MacRimi f0d7d4f8f7 fix: more messages say only what is certain
- Host restore notification: reports its tasks and no longer calls the node fully ready.
- Watchdog notification: covers an application that did not start as well as one that stopped again.
- OCI: Modify summary, Immich recognition preview, private network kept by another guest, empty USB list.
- gzip diagnostic no longer says that nothing changed.

Source questions from the Italian review by @f3rs3n.
2026-10-07 07:35:10 +02:00
MacRimi 19a7068fee fix: previews and warnings promise only what always happens 2026-10-06 21:36:02 +02:00
MacRimi 3f75b94ea1 fix(oci): call the editing of an application Modify everywhere
- The option that edits an installed application is Modify for one container and for a multi-container application, in the OCI menu and on the Monitor button. Recreate is only the rebuild of a multi-container application as it is.
- A stack recreation says "Recreating" and "Recreated" in its steps instead of "Updating".
- The notes of the GPU, Coral, disk and share menus no longer name the option.
- Spanish for the new texts; the English copies of the stack texts are removed from de, fr, pt and sv so the bot translates them.
2026-10-06 19:42:30 +02:00
MacRimiandGitHub 4a3dd8cc43 Merge pull request #423 from Vaso73/fix/oci-stack-recreate
fix(oci): recreate coordinated stacks from saved state
2026-10-06 19:12:28 +02:00
MacRimi 69c9984ff7 fix(i18n): translate texts with line breaks; drop the experimental label of OCI stacks 2026-10-06 19:04:49 +02:00
MacRimiandMattiaC46 f788f205b8 feat(backup): manage the VM and CT backup jobs of Proxmox
Co-authored-by: MattiaC46 <52442052+MattiaC46@users.noreply.github.com>
2026-10-06 18:29:12 +02:00
VAIO73 f464b62190 fix(oci): complete Monitor modify wrapper contract 2026-10-06 18:22:42 +02:00
MacRimi b4f4d98e85 fix(backup): send host backup notifications over HTTPS when the Monitor uses it 2026-10-06 17:26:55 +02:00
MacRimi 85b88f709a fix: make messages say what was verified (source questions from the Italian review) 2026-10-06 17:08:18 +02:00
MacRimi 6b50763e54 fix(i18n): natural Spanish for the menus and the OCI catalogue. 2026-10-05 18:10:17 +02:00
MacRimi 1f9d2acef5 feat(oci): recover applications after a Proxmox reinstall, cluster records and AMD GPU profiles
The installation record of an OCI application travels with its container:
a copy inside the container and another in /etc/pve, written together
with the one kept on the host. A container restored on a newly installed
Proxmox, restored with another ID or moved to another node of a cluster
is recognised and registered again, with its private network, hookscript,
Rclone mount, host firewall rule and NVIDIA runtime. The Monitor offers
the same recovery from the Updates tab.

AMD GPUs are offered by generation. A GPU the ROCm image supports takes
the profile as it is; one of a supported family (Radeon 680M, 780M) is an
experimental option that asks for confirmation and is never proposed; an
older one is not offered. The GPU is checked with a real inference before
the installation accepts it. Recreate changes what runs recognition in an
installed Immich, between the CPU and a GPU of the host.

Updates:
- A failed update that is restored and checked removes its temporary
  container and the disks of the failed attempt.
- Every container volume is part of the backups, so Jellyfin, Plex and
  Hugo update with their default installation.
- An image published with a Docker-format manifest is recognised by its
  layers and build time and updates.
- The Proxmox notes of a multi-container application link to its LAN
  address.
2026-10-04 20:32:17 +02:00
MacRimiandGitHub 284851627e Merge pull request #418 from pbr85/fix/post-install-test-journal
fix(tests): load journal helpers in post-install test
2026-10-01 23:08:51 +02:00
MacRimi 96f3d82e15 chore: follow-ups to #406, #407 and #415 — locale cleanup, journal entry, pigz 1.1 and docs 2026-10-01 23:06:49 +02:00
pbr f80e6c3e39 fix(tests): load journal helpers in post-install test
The test points LOCAL_SCRIPTS at a missing directory, so pmx_journal.sh
was never sourced and it stopped at the first pmx_journal_context call.
2026-10-01 21:43:41 +02:00
pbr e5fc9c7188 fix(journal): fail write/append when the temp copy can't be written
pmx_write_file and pmx_append_file didn't check the first cat into
the temp file, so a full /tmp returned 0 and left a truncated target.
2026-10-01 21:43:40 +02:00
MacRimiandGitHub 40788855db Merge pull request #407 from f3rs3n/fix/preserve-enterprise-repositories
fix: preserve configured PVE repositories during dependency checks
2026-10-01 21:24:49 +02:00
pbr 07f88659ea fix(post-install): verify gzip before diverting or restoring it
Only use a file as the real gzip if it is a working binary, otherwise
reinstall the gzip package; bail out without touching gzip if that
fails. Check the .distrib and wrapper writes, and never purge pigz
while gzip still depends on it.
2026-10-01 19:38:06 +02:00
pbr 4f651ffed5 fix(post-install): divert gzip instead of replacing it for pigz
A gzip package update overwrote the pigz wrapper, and uninstall could
restore a stale gzip.original over a newer binary. Use dpkg-divert
(--no-rename, gzip is Essential), migrate existing installs, and also
divert the /usr path on bookworm so a PVE 8 -> 9 upgrade keeps working.
2026-09-30 22:55:05 +02:00
martino 028026a9a0 fix: normalize Proxmox repository state and refresh consented switches 2026-09-30 22:05:46 +02:00
pbr e9957415ed fix(post-install): export GZIP in pigz wrapper so level -1 takes effect
The wrapper assigned GZIP="-1" without exporting it, so pigz never saw
it and compressed at its default level 6. Export it, and refresh
/bin/gzip on re-runs when gzip.original already exists so existing
installs pick up the corrected wrapper.
2026-09-30 21:57:38 +02:00
martino e57a2f3aae fix: require subscription-aware consent for PVE repository switches 2026-09-29 18:04:12 +02:00
MacRimi 2922fc235d fix: quiet apt in the installers and fix the duplicate repository cleanup 2026-09-28 19:14:05 +02:00
MacRimi 297c026c95 fix: Health Monitor storage and disk notices, SELinux-safe host backup, Frigate detector keys 2026-09-28 18:18:09 +02:00
VAIO73 884817f05c fix(oci): confirm scoped host-monitor firewall access 2026-09-27 13:28:53 +02:00
martino 3fa5a379f3 fix(tui): preserve literal translated placeholder replacements 2026-09-26 18:23:07 +02:00
MacRimi 14583ad9f6 Back up /var/lib/proxmenux whole in the default host profile 2026-09-25 22:53:35 +02: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