70 Commits
Author SHA1 Message Date
MacRimi 85e5c5f29b Merge branch 'develop' of https://github.com/MacRimi/ProxMenux into develop 2026-10-26 18:47:12 +01:00
MacRimi 7b1736fe3e fix: name the guest in VM/CT health alerts, refresh AI models, propose the recipe's volume choice
- A health problem of a VM or CT names the guest in its title and in the
  Quiet Hours summary; a recovery shows its category by name in the
  reader's language.
- AI model lists reviewed against each provider: Gemini adds 3.6/3.7/3.8
  Flash, Groq adds gpt-oss-120b, and Groq/OpenRouter models no longer
  served are removed.
- OCI installer proposes the volume choice the recipe declares, so a path
  meant for a host directory is proposed as one; Duplicati /source is
  proposed on a host directory.
2026-10-26 18:47:09 +01:00
MacRimi a640993b94 Generate the Laravel APP_KEY of Input during the installation
Laravel accepts a 32-character key, which token-hex with 16 bytes provides, so the installation no longer asks the user to create one with openssl.
2026-10-26 18:15:01 +01:00
Jonatan 0d063d519c Merge develop into OCI input review 2026-10-26 17:44:52 +01:00
Jonatan a1f90ddaf2 Add owner-aware OCI tmpfs mounts 2026-10-26 17:36:21 +01:00
MacRimi be6ef0069b 1.2.7: IT-Tools installable, catalog categories and release notes
- IT-Tools has the template the menu installs from, so it is offered
  like the rest of the catalog.
- Every curated application is listed in categories.json, and OpenTask's
  template matches its recipe.
- The texts of the LXC update jobs read correctly in Spanish, German,
  French, Italian, Portuguese and Swedish.
- The release notes count 514 applications and credit PRs #526, #527,
  #529 and #530.
2026-10-26 17:21:24 +01:00
Jonatan e82d95f1cf Document blocked Input OCI profile 2026-10-26 11:17:47 +01:00
Jonatan 25953b03bd Fix rqlite default startup command 2026-10-26 09:06:56 +01:00
Jonatan e99b5f32ee Use rqlite's upstream GHCR mirror 2026-10-26 09:06:56 +01:00
Jonatan 975a3b99cf oci: fix low-port and generated secret profiles 2026-10-26 09:06:56 +01:00
Jonatan a4fb46f861 oci: fix rqlite data directory argument 2026-10-26 09:06:56 +01:00
Jonatan 2a02154f17 oci: add 25 standalone service profiles 2026-10-26 09:06:09 +01:00
Jonatan ecd0b9c54b Fix OpenTask managed volume ownership 2026-10-26 09:05:06 +01:00
Jonatan 1ff10e7a7f Set Instatic data volume owner 2026-10-26 09:05:06 +01:00
Jonatan 5c90f40ef6 Set Flagr data volume owner 2026-10-26 09:05:06 +01:00
Jonatan ee5729aba2 Set Sofa persistent volume owner 2026-10-26 09:05:06 +01:00
Jonatan a42dd9d28c Align InvoiceShelf session URLs with LXC address 2026-10-26 09:05:06 +01:00
Jonatan 2014105343 Add 25 curated OCI application profiles 2026-10-26 09:05:06 +01:00
MacRimi 761385a107 Merge develop into feature/oci-next-50-extra
Resolves the catalog index and translation conflicts with PR #524 by keeping the entries and keys of both, adds the fifty applications to categories.json and renders oci/VALIDATION.md for 464 applications.
2026-10-26 07:41:00 +01:00
MacRimi fab4aee37a Keep the configuration of Glance, Homer and Prometheus across updates
Glance and Homer write their starter configuration only when it is missing, so an update does not replace the one the user edited. Prometheus keeps /etc/prometheus in a volume of its own, which starts with the configuration of the image and can be a host directory.
2026-10-26 07:28:40 +01:00
Jonatan 541eb6379e Document oCIS URL behind HTTPS proxy 2026-10-26 06:18:35 +01:00
Jonatan 23ac5ba228 Align Kiwix runtime command with official image 2026-10-26 05:27:14 +01:00
Jonatan e255b4cc64 Pass Kiwix ZIM wildcard to image entrypoint 2026-10-26 05:24:48 +01:00
Jonatan e909e1ce67 Fix Kiwix command passthrough 2026-10-26 05:21:49 +01:00
Jonatan 8269d9aaaf Add 50 curated OCI app profiles 2026-10-26 05:04:41 +01:00
Jonatan 8eeafa1f18 Add 50 curated OCI app profiles 2026-10-26 00:47:35 +01:00
MacRimi 1ff63fa955 OCI catalog: keep the Gatus configuration and explain the Pocket ID address
- Gatus keeps config.yaml in a /config volume of its own, which can also
  be a host directory, and the installation writes it only when it is
  missing, so updates and recreations keep the endpoints added to it.
- The address Pocket ID is opened at says what it is for and that
  passkeys need HTTPS.
- The catalog categories are sorted again.
- The release notes count 364 applications and credit PR #521.
2026-10-25 20:49:55 +01:00
Jonatan e649a92f30 Add ten curated OCI applications 2026-10-25 20:22:01 +01:00
MacRimi b2067e18a5 Add the icons of the seven curated OCI applications
Every catalog application carries its icon; these come from the same selfhst/icons set as the rest of the catalog.
2026-10-25 19:11:45 +01:00
Jonatan 8b1cbbbb0d Add seven curated OCI applications 2026-10-25 18:52:36 +01:00
MacRimi fc41b04e87 Pre-release 1.2.7: OCI fixes, 12 new catalog applications and docs updates
Last changes before version 1.2.7.

OCI manager Apps
- Multi-container applications start while one of their containers is
  being backed up: the start hook waits until vzdump releases it and does
  not start it twice. The DHCP client of a dependency no longer keeps the
  lock of the hook, so later starts do not hang, and the watchdog waits
  while a dependency is locked. Installing or updating ProxMenux replaces
  the published copies of the hook already in place.
- Images built from scratch with a numeric user, such as ddns-updater,
  install: the container is created from a copy of the image that adds
  the /etc/passwd and /etc/group Proxmox VE needs, and the application
  runs with the user the image declares. The downloaded image stays
  unchanged. An image with a named user and no user database stops
  before anything is created, with a message that says why.

Catalog
- Twelve new applications: MDBListarr, CrossWatch, Free Games Claimer
  Remaster, Cloudreve, Poznote and AceStream HTTP Proxy, suggested in
  discussion #440, and the Dockur images of Chrony, Dnsmasq, Tor,
  Stunnel, strfry and Statping. The catalog lists 347 applications.
- Their prompts, labels and notes are translated into the seven
  languages of the menus.

Documentation
- OCI manager: architecture, lifecycle and stacks pages revised, with
  larger diagrams and new screenshots.
- Contributors: the page now thanks those developing, reviewing,
  translating and testing ProxMenux today and those who helped in its
  first steps, with new avatars.

Tests for the stack start hook, the watchdog, the user database check
of OCI images and the Tor installation summary.
2026-10-25 13:17:54 +01:00
MacRimi ec934c8c2d Merge remote-tracking branch 'origin/develop' into HEAD
# Conflicts:
#	.github/workflows/test-oci-registries.yml
2026-10-19 17:07:02 +02:00
MacRimi 3e3e0916f2 fix(oci): clean format directories of a running container
- Open the container root without O_NOFOLLOW, as /proc/<pid>/root is a link
- Keep the /config preparation of JDownloader in its overlay
2026-10-19 17:06:49 +02:00
VAIO73 7e00904dce fix(oci): align JDownloader and Arr suite web links 2026-10-19 11:02:50 +00:00
MacRimi 00350655bf add NUT Server to the catalog
- NUT Server (instantlinux/nut-upsd) runs the Network UPS Tools server for a UPS connected to the host by USB: the installation proposes the UPS the host detects, passes it to the container, generates the password of the upsmon user and starts with the host; clients such as PeaNUT connect on port 3493.
- A recipe can ask for the UPS of the host: without one, the installation stops and says so, and the advanced installation lets the node be typed by hand.
- The catalog lists 335 applications.
- Tests for the proposed UPS, a host without one and the recipe.
2026-10-15 20:06:06 +02:00
MacRimi f17f87c94d fix(oci): FileBrowser Quantum opens the folder it is given 2026-10-12 13:00:55 +02:00
MacRimi 69b76116fd fix(oci): services show their address instead of a web link, and applications are not asked for their own 2026-10-11 15:57:05 +02:00
MacRimi 5be6c14221 feat(oci): add Duplicati Official and hide three applications
The image published by the Duplicati project joins the catalog next to the LinuxServer one.

Bitcoin Knots is hidden until its image closes the application cleanly when it stops; EmulatorJS and SickChill, until their images are published again.
2026-10-11 12:02:04 +02:00
MacRimi 04cfa2c587 feat(oci): recipes that say what they ask for
Manyfold, BookStack and NetBox declare the services they need. Lychee and Manyfold install with their own SQLite database.

Folding@home, Healthchecks, NetBird, Speedtest Tracker, Twingate Connector, HA Bridge, ChatGPT Next Web, DDNS Updater and Minisatip explain each value, propose one or leave it to the advanced installation.

Pinchflat gets 1024 MB.
2026-10-11 12:02:04 +02:00
MacRimi a552da6f91 fix(oci): a Compose reservation is not the memory limit of the container
What a Compose file reserves is the least the application is promised, not the most it may use. 81 recipes had taken it as the memory of the container, as low as 128 MB, and the kernel stopped applications such as Home Assistant Official and UniFi Network.

Without a limit in the file the container gets the standard 1024 MB, or the reservation when it is larger. A limit the file sets is kept.
2026-10-11 12:02:04 +02:00
MacRimi 66c621fe7a fix(oci): the access rule covers the container's root, and a shared volume is writable by its group 2026-10-08 22:57:37 +02:00
MacRimi abf436c352 feat(oci): offer access to an existing host directory and gather the file-sharing applications
feat(oci): offer access to a host directory that already exists
feat(oci): gather the file-sharing applications in Files & Sharing
fix(oci): ShareCoveX keeps its settings in a 1 GB volume, and the new translations are mended
2026-10-08 22:28:53 +02:00
MacRimi 73bca5f130 feat(oci): ShareCoveX is recorded as tested in the lab
Installed for real on a lab host through the default and the advanced
installation, with a host directory and a container volume to share, and
removed again. The recipe states what was exercised: clean install and
service health; the rest of its validation fields stay pending.
2026-10-08 21:52:56 +02:00
MacRimi c7efdd2e59 feat(oci): add ShareCoveX to the catalog and ask for the directories it shares
ShareCoveX is a file server with a web panel that publishes directories
over SMB, NFS or both. Its recipe declares that it shares directories, so
the installation asks for them one after another, in the default mode as
well: each is a container volume or a directory of the host, mounted under
/shares with the name given to it. Modify offers to add more.

The advanced installation also offers the privileged profile NFSv4 needs;
the default one never asks and stays unprivileged. A secret can declare a
minimum length, and the recipe opens the Files & Sharing category.
2026-10-08 21:43:49 +02:00
MacRimi f5ad4072b5 feat(oci): update and modify every application, and keep its address
- The backup taken before an update or a modification is made on another
  storage when it does not fit on the system disk; an operation without
  room says so before anything is stopped.
- Privileged containers, relaxed AppArmor or seccomp, process limits, the
  host monitors Glances and Netdata and single-file host mounts are
  rebuilt and recovered like any other application.
- HAOS One installs the docker-haos image: port 8123, host time zone,
  unprivileged, watchdog proposed by default; it is updated and modified
  with Home Assistant's own check on the rebuilt container.
- A container that reboots itself gets its DHCP client back.
- The installer takes the address of the container's own interface, and
  the notes of a suite or stack container show its LAN address.
- Seerr installs: its volume belongs to the image user and
  no-new-privileges goes through the include of the container.
- Removing an application deletes its seccomp profile.
2026-10-08 17:14:36 +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
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
MacRimi 9b5cefb81a feat(oci): GPU selection per host and per image, one notification per update, and App tab for stack containers
- Immich asks what runs its video and its recognition in one menu, in both
  modes, and gives the GPU to the server and to Machine learning; AMD uses ROCm
- Frigate, Ollama, llama.cpp, Faster Whisper and Piper take the image built
  for the chosen GPU
- The acceleration menu offers only what the host can run
- An update or a recreation sends one notification with its result instead of
  the stop, backup and start of each container
- A private bridge with nothing connected is not reported as down
- Secondary containers of a stack appear in the App tab with their version and
  logo; Secure Gateway shows the same update state in both views
- A mistyped value in the wizard asks the same question again
2026-10-02 21:45:38 +02:00
MacRimi c83f84398b fix(oci): keep every declared image data path on a volume so installs can be updated 2026-09-30 22:28:20 +02:00
MacRimi 438cb935d0 feat(oci): explain optional image variables and show their example value as a hint 2026-09-29 20:49:45 +02:00