Merge pull request #379 from MacRimi/remove/oci-shell-entrypoint

Remove the OCI shell entry point nothing runs
This commit is contained in:
MacRimi
2026-09-22 23:25:13 +02:00
committed by GitHub
11 changed files with 12 additions and 79 deletions
-1
View File
@@ -6209,7 +6209,6 @@
"This installation will:": "Diese Installation wird:",
"This installer will:": "Dieses Installationsprogramm wird:",
"This interface is configured but doesn't exist physically": "Diese Schnittstelle ist konfiguriert, aber physisch nicht vorhanden",
"This interface runs on the Proxmox node as root. Open proxmenux-oci.sh on the Proxmox host.": "Diese Schnittstelle läuft auf dem Proxmox-Knoten als root. Öffnen Sie proxmenux-oci.sh auf dem Proxmox-Host.",
"This is IRREVERSIBLE.": "Das ist irreversibel.",
"This is a destructive action": "Dies ist eine destruktive Aktion",
"This is a simple configuration change": "Dies ist eine einfache Konfigurationsänderung",
+1 -1
View File
@@ -6209,7 +6209,7 @@
"This installation will:": "Esta instalación:",
"This installer will:": "Este instalador:",
"This interface is configured but doesn't exist physically": "Esta interfaz está configurada pero no existe físicamente.",
"This interface runs on the Proxmox node as root. Open proxmenux-oci.sh on the Proxmox host.": "Esta interfaz se ejecuta en el nodo Proxmox como root. Abre proxmenux-oci.sh en el host Proxmox.",
"This interface runs on the Proxmox node as root. Open OCI manager Apps from the ProxMenux menu on the Proxmox host.": "Esta interfaz se ejecuta en el nodo Proxmox como root. Abre OCI manager Apps desde el menú de ProxMenux en el host Proxmox.",
"This is IRREVERSIBLE.": "Esto es IRREVERSIBLE.",
"This is a destructive action": "Esta es una acción destructiva.",
"This is a simple configuration change": "Este es un cambio de configuración simple.",
-1
View File
@@ -6209,7 +6209,6 @@
"This installation will:": "Cette installation va :",
"This installer will:": "Ce programme d'installation va :",
"This interface is configured but doesn't exist physically": "Cette interface est configurée mais n'existe pas physiquement",
"This interface runs on the Proxmox node as root. Open proxmenux-oci.sh on the Proxmox host.": "Cette interface fonctionne sur le nœud Proxmox comme racine. Ouvrez proxmenux-oci.sh sur l'hôte Proxmox.",
"This is IRREVERSIBLE.": "C’est IRRÉVERSIBLE.",
"This is a destructive action": "Il s’agit d’une action destructrice",
"This is a simple configuration change": "Il s'agit d'un simple changement de configuration",
-1
View File
@@ -6209,7 +6209,6 @@
"This installation will:": "Questa installazione:",
"This installer will:": "Questo programma di installazione:",
"This interface is configured but doesn't exist physically": "Questa interfaccia è configurata ma non esiste fisicamente",
"This interface runs on the Proxmox node as root. Open proxmenux-oci.sh on the Proxmox host.": "Questa interfaccia funziona sul nodo Proxmox come root. Aprire proxmenux-oci.sh sull'host Proxmox.",
"This is IRREVERSIBLE.": "questo è IRREVERSIBILE.",
"This is a destructive action": "Questa è un'azione distruttiva",
"This is a simple configuration change": "Si tratta di una semplice modifica della configurazione",
-1
View File
@@ -6209,7 +6209,6 @@
"This installation will:": "Esta instalação irá:",
"This installer will:": "Este instalador irá:",
"This interface is configured but doesn't exist physically": "Esta interface está configurada, mas não existe fisicamente",
"This interface runs on the Proxmox node as root. Open proxmenux-oci.sh on the Proxmox host.": "Esta interface é executada no nó Proxmox como root. Abra proxmenux-oci.sh no host Proxmox.",
"This is IRREVERSIBLE.": "Isso é IRREVERSÍVEL.",
"This is a destructive action": "Esta é uma ação destrutiva",
"This is a simple configuration change": "Esta é uma simples mudança de configuração",
-1
View File
@@ -6209,7 +6209,6 @@
"This installation will:": "Táto inštalácia urobí toto:",
"This installer will:": "Tento inštalátor urobí toto:",
"This interface is configured but doesn't exist physically": "Toto rozhranie je nastavené, ale fyzicky neexistuje",
"This interface runs on the Proxmox node as root. Open proxmenux-oci.sh on the Proxmox host.": "Toto rozhranie beží na uzle Proxmox ako koreň. Otvorte proxmenux-oci.sh na hostiteľovi Proxmox.",
"This is IRREVERSIBLE.": "Toto je NEVRATNÉ.",
"This is a destructive action": "Toto je deštruktívna akcia",
"This is a simple configuration change": "Ide o jednoduchú zmenu nastavenia",
-1
View File
@@ -6209,7 +6209,6 @@
"This installation will:": "Denna installation kommer att:",
"This installer will:": "Detta installationsprogram kommer att:",
"This interface is configured but doesn't exist physically": "Detta gränssnitt är konfigurerat men existerar inte fysiskt",
"This interface runs on the Proxmox node as root. Open proxmenux-oci.sh on the Proxmox host.": "Detta gränssnitt körs på Proxmox-noden som rot. Öppna proxmenux-oci.sh på Proxmox-värden.",
"This is IRREVERSIBLE.": "Detta är IRREVERSIBELT.",
"This is a destructive action": "Detta är en destruktiv handling",
"This is a simple configuration change": "Detta är en enkel konfigurationsändring",
-1
View File
@@ -2,7 +2,6 @@
Runtime distribution only:
- `proxmenux-oci.sh`: entry point, run from this directory.
- `catalog/`: index, application templates, curated definitions and overlays.
- `src/`: menu and deployment orchestrator.
- `remote/`: native Proxmox OCI/LXC installation and lifecycle helpers.
+10 -12
View File
@@ -58,26 +58,24 @@ compatible merely because conversion succeeded.
## Catalog maintenance
The catalog is generated rather than written by hand. `proxmenux-oci.sh` is the
tool that produces and inspects it, and it is what a contributor adding an
application runs:
The catalog is generated rather than written by hand. A contributor adding an
application runs the orchestrator directly from this directory:
```bash
./proxmenux-oci.sh sync
./proxmenux-oci.sh list --filter sonarr
./proxmenux-oci.sh generate sonarr
./proxmenux-oci.sh show sonarr
GITHUB_TOKEN=github_pat_xxx ./proxmenux-oci.sh generate-all
export PYTHONPATH=src
python3 -m proxmenux_oci sync
python3 -m proxmenux_oci list --filter sonarr
python3 -m proxmenux_oci generate sonarr
python3 -m proxmenux_oci show sonarr
GITHUB_TOKEN=github_pat_xxx python3 -m proxmenux_oci generate-all
```
`generate` writes one application's template from its published recipe; `show`
prints what the installation would create, which is the fastest way to see
whether a translation came out right before installing anything.
On Debian and Proxmox the launcher reuses the distribution packages
`python3-yaml` and `python3-jsonschema` when they are present, so nothing is
installed into the system Python. Where they are absent, install them with APT
before generating the catalog.
It needs `python3-yaml` and `python3-jsonschema`. On Debian and Proxmox both
are distribution packages; install them with APT before generating the catalog.
`GITHUB_TOKEN` is optional and only raises the public API rate limit, which the
full `generate-all` pass reaches. Never commit a token; `.env` files are
-58
View File
@@ -1,58 +0,0 @@
#!/usr/bin/env bash
set -Eeuo pipefail
ROOT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
VENV_DIR="$ROOT_DIR/.venv"
REQUIREMENTS="$ROOT_DIR/requirements.txt"
STAMP="$VENV_DIR/.requirements.sha256"
# The orchestrator lives beside this script, so it has to run from where it
# was installed. Piped from a URL there is no directory to read: $0 is "bash",
# ROOT_DIR becomes the working directory, and the first missing file reports a
# path nobody asked for.
if [ ! -r "$REQUIREMENTS" ] || [ ! -d "$ROOT_DIR/src/proxmenux_oci" ]; then
cat >&2 <<EOF
ERROR: this script runs from the directory it was installed in, next to
requirements.txt and src/. It cannot be piped from a URL.
On a Proxmox host with ProxMenux installed:
/usr/local/share/proxmenux/oci/engine/proxmenux-oci.sh "\$@"
From a clone of the repository:
cd oci && ./proxmenux-oci.sh "\$@"
EOF
exit 1
fi
command -v python3 >/dev/null 2>&1 || {
echo "ERROR: Python 3 is required." >&2
exit 1
}
if python3 -c 'import yaml, jsonschema' >/dev/null 2>&1; then
PYTHON=python3
else
if [[ ! -x "$VENV_DIR/bin/python" ]] || ! "$VENV_DIR/bin/python" -m pip --version >/dev/null 2>&1; then
echo "Preparing the local Python environment..."
rm -rf "$VENV_DIR"
python3 -m venv "$VENV_DIR" || {
echo "ERROR: could not create the virtual environment. On Debian, install python3-venv, python3-yaml and python3-jsonschema." >&2
exit 1
}
fi
if command -v shasum >/dev/null 2>&1; then
CURRENT_HASH=$(shasum -a 256 "$REQUIREMENTS" | awk '{print $1}')
else
CURRENT_HASH=$(sha256sum "$REQUIREMENTS" | awk '{print $1}')
fi
INSTALLED_HASH=$(cat "$STAMP" 2>/dev/null || true)
if [[ "$CURRENT_HASH" != "$INSTALLED_HASH" ]]; then
echo "Installing the converter dependencies..."
"$VENV_DIR/bin/python" -m pip install --disable-pip-version-check -r "$REQUIREMENTS"
printf '%s\n' "$CURRENT_HASH" >"$STAMP"
fi
PYTHON="$VENV_DIR/bin/python"
fi
export PYTHONPATH="$ROOT_DIR/src${PYTHONPATH:+:$PYTHONPATH}"
exec "$PYTHON" -m proxmenux_oci "$@"
+1 -1
View File
@@ -141,7 +141,7 @@ def interactive_management(project, ui):
def _interactive_management(project, ui):
if os.geteuid() != 0 or not shutil.which('pct'):
ui.message(translate('This interface runs on the Proxmox node as root. Open proxmenux-oci.sh on the Proxmox host.'), translate('OCI management'))
ui.message(translate('This interface runs on the Proxmox node as root. Open OCI manager Apps from the ProxMenux menu on the Proxmox host.'), translate('OCI management'))
return
rows = saved_inventory(project)
if not rows: