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.
This commit is contained in:
MacRimi
2026-10-25 13:17:54 +01:00
parent 2f48689087
commit fc41b04e87
103 changed files with 12799 additions and 603 deletions
+383
View File
@@ -40,6 +40,37 @@
"hidden": false,
"template_id": "image-2fauth"
},
{
"id": "acestream-http-proxy",
"provider": "martinbjeldbak",
"template_family": "curated-profile",
"title": "AceStream HTTP Proxy",
"repository": "https://github.com/martinbjeldbak/acestream-http-proxy",
"description": "Runs the AceStream engine and serves its streams over HTTP as HLS or MPEG-TS, for players such as VLC.",
"website": "https://github.com/martinbjeldbak/acestream-http-proxy",
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/ace-stream.webp",
"architectures": [
"amd64"
],
"updated_at": null,
"main_image": "ghcr.io/martinbjeldbak/acestream-http-proxy:latest",
"category": "media",
"category_label": "Media & Streaming",
"replaces_discovered_ids": [],
"curated_path": "catalog/curated/acestream-http-proxy.json",
"template": "apps/acestream-http-proxy.json",
"template_status": "generated-unvalidated",
"automatic_install_candidate": true,
"untranslated_blockers": [],
"requires_privileged_lxc": false,
"optional_privileged_lxc": false,
"requires_host_pid_namespace": false,
"requires_relaxed_confinement": false,
"optional_relaxed_confinement": false,
"requires_security_confirmation": false,
"hidden": false,
"template_id": "image-acestream-http-proxy"
},
{
"id": "actualbudget",
"source_app_id": "actualbudget",
@@ -1415,6 +1446,38 @@
"hidden": false,
"template_id": "linuxserver-chromium"
},
{
"id": "chrony",
"provider": "dockurr",
"template_family": "curated-profile",
"title": "Chrony",
"repository": "https://github.com/dockur/chrony",
"description": "Serves NTP time to the network from upstream servers, without adjusting the clock of the Proxmox host.",
"website": "https://github.com/dockur/chrony",
"icon": null,
"architectures": [
"amd64",
"arm64"
],
"updated_at": null,
"main_image": "dockurr/chrony:latest",
"category": "network",
"category_label": "Network & Firewall",
"replaces_discovered_ids": [],
"curated_path": "catalog/curated/chrony.json",
"template": "apps/chrony.json",
"template_status": "generated-unvalidated",
"automatic_install_candidate": true,
"untranslated_blockers": [],
"requires_privileged_lxc": false,
"optional_privileged_lxc": false,
"requires_host_pid_namespace": false,
"requires_relaxed_confinement": false,
"optional_relaxed_confinement": false,
"requires_security_confirmation": false,
"hidden": false,
"template_id": "image-chrony"
},
{
"id": "cloudbeaver",
"source_app_id": "cloudbeaver",
@@ -1487,6 +1550,38 @@
"hidden": false,
"template_id": "image-cloudflared"
},
{
"id": "cloudreve",
"provider": "official",
"template_family": "curated-profile",
"title": "Cloudreve",
"repository": "https://github.com/cloudreve/Cloudreve",
"description": "File management and sharing with WebDAV, multiple users and storage on local disks, S3-compatible services or OneDrive.",
"website": "https://cloudreve.org/",
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/cloudreve.webp",
"architectures": [
"amd64",
"arm64"
],
"updated_at": null,
"main_image": "cloudreve/cloudreve:latest",
"category": "sharing",
"category_label": "Files & Sharing",
"replaces_discovered_ids": [],
"curated_path": "catalog/curated/cloudreve.json",
"template": "apps/cloudreve.json",
"template_status": "generated-unvalidated",
"automatic_install_candidate": true,
"untranslated_blockers": [],
"requires_privileged_lxc": false,
"optional_privileged_lxc": false,
"requires_host_pid_namespace": false,
"requires_relaxed_confinement": false,
"optional_relaxed_confinement": false,
"requires_security_confirmation": false,
"hidden": false,
"template_id": "image-cloudreve"
},
{
"id": "clumoove",
"source_app_id": "clumoove",
@@ -1731,6 +1826,38 @@
"hidden": false,
"template_id": "image-crafty"
},
{
"id": "crosswatch",
"provider": "cenodude",
"template_family": "curated-profile",
"title": "CrossWatch",
"repository": "https://github.com/cenodude/CrossWatch",
"description": "Syncs watch history, ratings and watchlists between Plex, Jellyfin, Emby and trackers such as Trakt and SIMKL.",
"website": "https://github.com/cenodude/CrossWatch",
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/crosswatch.webp",
"architectures": [
"amd64",
"arm64"
],
"updated_at": null,
"main_image": "ghcr.io/cenodude/crosswatch:latest",
"category": "media",
"category_label": "Media & Streaming",
"replaces_discovered_ids": [],
"curated_path": "catalog/curated/crosswatch.json",
"template": "apps/crosswatch.json",
"template_status": "generated-unvalidated",
"automatic_install_candidate": true,
"untranslated_blockers": [],
"requires_privileged_lxc": false,
"optional_privileged_lxc": false,
"requires_host_pid_namespace": false,
"requires_relaxed_confinement": false,
"optional_relaxed_confinement": false,
"requires_security_confirmation": false,
"hidden": false,
"template_id": "image-crosswatch"
},
{
"id": "cura",
"provider": "linuxserver.io",
@@ -2149,6 +2276,38 @@
"hidden": true,
"template_id": "linuxserver-diskover"
},
{
"id": "dnsmasq",
"provider": "dockurr",
"template_family": "curated-profile",
"title": "Dnsmasq",
"repository": "https://github.com/dockur/dnsmasq",
"description": "Forwards and caches DNS queries for the network through the upstream servers chosen.",
"website": "https://github.com/dockur/dnsmasq",
"icon": null,
"architectures": [
"amd64",
"arm64"
],
"updated_at": null,
"main_image": "dockurr/dnsmasq:latest",
"category": "adblock",
"category_label": "Adblock & DNS",
"replaces_discovered_ids": [],
"curated_path": "catalog/curated/dnsmasq.json",
"template": "apps/dnsmasq.json",
"template_status": "generated-unvalidated",
"automatic_install_candidate": true,
"untranslated_blockers": [],
"requires_privileged_lxc": false,
"optional_privileged_lxc": false,
"requires_host_pid_namespace": false,
"requires_relaxed_confinement": false,
"optional_relaxed_confinement": false,
"requires_security_confirmation": false,
"hidden": false,
"template_id": "image-dnsmasq"
},
{
"id": "docker-volume-backup",
"provider": "mrcaringi",
@@ -3349,6 +3508,38 @@
"hidden": false,
"template_id": "linuxserver-foldingathome"
},
{
"id": "free-games-claimer-remaster",
"provider": "p-adamiec",
"template_family": "curated-profile",
"title": "Free Games Claimer Remaster",
"repository": "https://github.com/P-Adamiec/Free-Games-Claimer-Remaster",
"description": "Claims free games and giveaways from Steam, Epic Games, Prime Gaming, GOG and other stores on a schedule, with a browser reachable over noVNC to sign in.",
"website": "https://github.com/P-Adamiec/Free-Games-Claimer-Remaster",
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/free-games-claimer.webp",
"architectures": [
"amd64",
"arm64"
],
"updated_at": null,
"main_image": "ghcr.io/p-adamiec/free-games-claimer-remaster:latest",
"category": "gaming",
"category_label": "Gaming & Leisure",
"replaces_discovered_ids": [],
"curated_path": "catalog/curated/free-games-claimer-remaster.json",
"template": "apps/free-games-claimer-remaster.json",
"template_status": "generated-unvalidated",
"automatic_install_candidate": true,
"untranslated_blockers": [],
"requires_privileged_lxc": false,
"optional_privileged_lxc": false,
"requires_host_pid_namespace": false,
"requires_relaxed_confinement": false,
"optional_relaxed_confinement": false,
"requires_security_confirmation": false,
"hidden": false,
"template_id": "image-free-games-claimer-remaster"
},
{
"id": "freecad",
"provider": "linuxserver.io",
@@ -6071,6 +6262,38 @@
"hidden": true,
"template_id": "image-maybe"
},
{
"id": "mdblistarr",
"provider": "linaspurinis",
"template_family": "curated-profile",
"title": "MDBListarr",
"repository": "https://github.com/linaspurinis/mdblistarr",
"description": "Sends MDBList lists to Radarr and Sonarr and keeps the library status synced with MDBList.",
"website": "https://github.com/linaspurinis/mdblistarr",
"icon": null,
"architectures": [
"amd64",
"arm64"
],
"updated_at": null,
"main_image": "linaspurinis/mdblistarr:latest",
"category": "arr",
"category_label": "*Arr Suite",
"replaces_discovered_ids": [],
"curated_path": "catalog/curated/mdblistarr.json",
"template": "apps/mdblistarr.json",
"template_status": "generated-unvalidated",
"automatic_install_candidate": true,
"untranslated_blockers": [],
"requires_privileged_lxc": false,
"optional_privileged_lxc": false,
"requires_host_pid_namespace": false,
"requires_relaxed_confinement": false,
"optional_relaxed_confinement": false,
"requires_security_confirmation": false,
"hidden": false,
"template_id": "image-mdblistarr"
},
{
"id": "mediaelch",
"provider": "linuxserver.io",
@@ -8739,6 +8962,38 @@
"hidden": false,
"template_id": "image-postgresql"
},
{
"id": "poznote",
"provider": "timothepoznanski",
"template_family": "curated-profile",
"title": "Poznote",
"repository": "https://github.com/timothepoznanski/poznote",
"description": "Self-hosted notes with rich text and Markdown, tags, workspaces, attachments, sharing and a REST API.",
"website": "https://github.com/timothepoznanski/poznote",
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/poznote.webp",
"architectures": [
"amd64",
"arm64"
],
"updated_at": null,
"main_image": "ghcr.io/timothepoznanski/poznote:latest",
"category": "documents",
"category_label": "Documents & Notes",
"replaces_discovered_ids": [],
"curated_path": "catalog/curated/poznote.json",
"template": "apps/poznote.json",
"template_status": "generated-unvalidated",
"automatic_install_candidate": true,
"untranslated_blockers": [],
"requires_privileged_lxc": false,
"optional_privileged_lxc": false,
"requires_host_pid_namespace": false,
"requires_relaxed_confinement": false,
"optional_relaxed_confinement": false,
"requires_security_confirmation": false,
"hidden": false,
"template_id": "image-poznote"
},
{
"id": "ppsspp",
"provider": "linuxserver.io",
@@ -10294,6 +10549,38 @@
"hidden": false,
"template_id": "image-stable-diffusion-webui-nvidia"
},
{
"id": "statping",
"provider": "dockurr",
"template_family": "curated-profile",
"title": "Statping",
"repository": "https://github.com/dockur/statping",
"description": "Status page that monitors websites and services and records their uptime and response times.",
"website": "https://github.com/dockur/statping",
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/statping-ng.webp",
"architectures": [
"amd64",
"arm64"
],
"updated_at": null,
"main_image": "dockurr/statping:latest",
"category": "monitoring",
"category_label": "Monitoring & Analytics",
"replaces_discovered_ids": [],
"curated_path": "catalog/curated/statping.json",
"template": "apps/statping.json",
"template_status": "generated-unvalidated",
"automatic_install_candidate": true,
"untranslated_blockers": [],
"requires_privileged_lxc": false,
"optional_privileged_lxc": false,
"requires_host_pid_namespace": false,
"requires_relaxed_confinement": false,
"optional_relaxed_confinement": false,
"requires_security_confirmation": false,
"hidden": false,
"template_id": "image-statping"
},
{
"id": "steam",
"provider": "linuxserver.io",
@@ -10359,6 +10646,70 @@
"hidden": false,
"template_id": "image-stremio"
},
{
"id": "strfry",
"provider": "dockurr",
"template_family": "curated-profile",
"title": "strfry",
"repository": "https://github.com/dockur/strfry",
"description": "High-performance relay for the Nostr protocol, served over WebSocket.",
"website": "https://github.com/dockur/strfry",
"icon": null,
"architectures": [
"amd64",
"arm64"
],
"updated_at": null,
"main_image": "dockurr/strfry:latest",
"category": "communication",
"category_label": "Communication & Community",
"replaces_discovered_ids": [],
"curated_path": "catalog/curated/strfry.json",
"template": "apps/strfry.json",
"template_status": "generated-unvalidated",
"automatic_install_candidate": true,
"untranslated_blockers": [],
"requires_privileged_lxc": false,
"optional_privileged_lxc": false,
"requires_host_pid_namespace": false,
"requires_relaxed_confinement": false,
"optional_relaxed_confinement": false,
"requires_security_confirmation": false,
"hidden": false,
"template_id": "image-strfry"
},
{
"id": "stunnel",
"provider": "dockurr",
"template_family": "curated-profile",
"title": "Stunnel",
"repository": "https://github.com/dockur/stunnel",
"description": "Wraps a TCP service in TLS, such as DNS over TLS on port 853 in front of a DNS server.",
"website": "https://github.com/dockur/stunnel",
"icon": null,
"architectures": [
"amd64",
"arm64"
],
"updated_at": null,
"main_image": "dockurr/stunnel:latest",
"category": "security",
"category_label": "Authentication & Security",
"replaces_discovered_ids": [],
"curated_path": "catalog/curated/stunnel.json",
"template": "apps/stunnel.json",
"template_status": "generated-unvalidated",
"automatic_install_candidate": true,
"untranslated_blockers": [],
"requires_privileged_lxc": false,
"optional_privileged_lxc": false,
"requires_host_pid_namespace": false,
"requires_relaxed_confinement": false,
"optional_relaxed_confinement": false,
"requires_security_confirmation": false,
"hidden": false,
"template_id": "image-stunnel"
},
{
"id": "suite-arr",
"provider": "linuxserver.io",
@@ -10980,6 +11331,38 @@
"hidden": false,
"template_id": "linuxserver-thunderbird"
},
{
"id": "tor",
"provider": "dockurr",
"template_family": "curated-profile",
"title": "Tor",
"repository": "https://github.com/dockur/tor",
"description": "Sends the traffic of the applications configured to use it through the Tor network, over SOCKS5 or HTTP CONNECT.",
"website": "https://github.com/dockur/tor",
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/tor.webp",
"architectures": [
"amd64",
"arm64"
],
"updated_at": null,
"main_image": "dockurr/tor:latest",
"category": "remote",
"category_label": "Remote Access & VPN",
"replaces_discovered_ids": [],
"curated_path": "catalog/curated/tor.json",
"template": "apps/tor.json",
"template_status": "generated-unvalidated",
"automatic_install_candidate": true,
"untranslated_blockers": [],
"requires_privileged_lxc": false,
"optional_privileged_lxc": false,
"requires_host_pid_namespace": false,
"requires_relaxed_confinement": false,
"optional_relaxed_confinement": false,
"requires_security_confirmation": false,
"hidden": false,
"template_id": "image-tor"
},
{
"id": "transmission",
"provider": "linuxserver.io",