"title":"Instalar una imagen que no está en el catálogo | ProxMenux",
"description":"Traducción de una imagen OCI desde un archivo Compose, una URL, un comando docker run o una referencia de imagen, con revisión de lo que ProxMenux puede reproducir antes de instalarla."
},
"header":{
"title":"Instalar una imagen que no está en el catálogo",
"description":"Una imagen propia se traduce desde su archivo Compose, un comando docker run o solo su referencia, y el resultado se presenta para revisión antes de crear ningún LXC.",
"section":"OCI manager Apps"
},
"sections":[
{
"id":"intro",
"blocks":[
{
"calloutInfo":{
"title":"El mismo conversor, el mismo instalador",
"body":"La opción <strong>Instalar una imagen que no está en el catálogo</strong> utiliza el conversor y el instalador de las plantillas del catálogo. La diferencia es que el contrato se genera en ese momento a partir de la definición aportada y se valida antes de crear ningún LXC."
"intro":"La primera pantalla pregunta cómo se describe la imagen. Cuatro formas aportan una definición que se traduce, una quinta usa solo el nombre de la imagen y tres reciben un oci-compose ya escrito.",
["Pegar su archivo Compose en la terminal","El YAML se pega en la terminal y termina con Ctrl+D en una línea vacía."],
["Leer su archivo Compose desde un archivo de este host","Una ruta del nodo, <code>/root/docker-compose.yml</code> por defecto. El archivo debe existir y ocupar como máximo 256 KiB."],
["Descargar su archivo Compose desde una dirección","Una dirección <code>http://</code> o <code>https://</code> que sirva el YAML sin procesar. Se descargan como máximo 256 KiB."],
["Pegar su comando docker run en la terminal","El comando que publica el proyecto. Se traducen puertos, entorno, volúmenes, dispositivos, capacidades, usuario, memoria compartida y el resto de opciones admitidas."],
["Solo la referencia de la imagen, sin archivo Compose","Una referencia como <code>ghcr.io/user/application:latest</code>. Se consulta el registro y se conservan los metadatos OCI de la imagen."],
["Pegar un oci-compose en la terminal","El JSON se pega en la terminal y termina con Ctrl+D en una línea vacía. No se traduce: se comprueba y se instala tal como está escrito."],
["Leer un oci-compose desde un archivo de este host","Un archivo JSON del nodo, <code>/root/oci-compose.json</code> por defecto, de 2 MiB como máximo."],
["Descargar un oci-compose desde una dirección","Una dirección <code>http://</code> o <code>https://</code> que sirva el archivo JSON. Se descargan como máximo 2 MiB."]
["<code>Entrypoint</code>, <code>Cmd</code>, <code>User</code>, <code>WorkingDir</code> y entorno integrado","Variables que solo aparecen en la documentación","Se añaden durante la instalación o con Modificar"],
["Volúmenes declarados por la imagen","Directorios del host que solo nombra un archivo Compose","Las rutas adicionales se añaden antes de instalar"],
["Puertos <code>EXPOSE</code>","La URL, el protocolo o un healthcheck funcional","Se confirman el puerto y la forma de comprobar el servicio"],
["Arquitecturas y digest del registro","Dispositivos, privilegios o dependencias externas","Ninguno se activa sin una definición que lo pida"]
]
}
}
]
},
{
"id":"review",
"title":"Revisión antes de instalar",
"intro":"Tras traducir la definición, ProxMenux muestra lo que ha entendido antes de pedir VMID, recursos o almacenamiento.",
"blocks":[
{
"steps":{
"items":[
{"title":"Analizar","body":"Se leen servicios, imagen, puertos, rutas, entorno, dispositivos, seguridad y healthcheck."},
{"title":"Consultar el registro","body":"La imagen debe existir en un registro público, y se enumeran las arquitecturas que publica."},
{"title":"Enumerar lo que no se aplica","body":"Se enumeran las etiquetas, las redes Docker, los ajustes de Swarm y el resto de claves que no tienen efecto en un LXC."},
{"title":"Bloquear lo que no puede traducirse","body":"Una clave sin equivalencia segura aparece en <strong>Lo que no puede traducirse</strong> y la instalación no continúa. Nada se descarta en silencio."},
{"title":"Pedir los secretos","body":"Las variables cuyo nombre corresponde a una contraseña, un token o una clave se convierten en preguntas sensibles de la instalación."}
]
}
},
{
"figure":{
"src":"/oci-manager/custom-review.png",
"alt":"Resumen de lo que ProxMenux ha entendido de un archivo Compose",
"caption":"El resumen que se muestra antes de que la instalación pida VMID y recursos."
}
},
{
"p":"Tras aceptar el resumen, el recorrido es el del catálogo: nombre, modo predeterminado o avanzado, VMID, CPU, memoria, red, arranque con el nodo, rutas persistentes, rutas adicionales, dispositivos compatibles y resumen final."
"intro":"Un oci-compose es el archivo JSON desde el que se instala una aplicación. El catálogo guarda uno por cada aplicación, y el mismo formato puede escribirse a mano e instalarse con esta opción.",
"blocks":[
{
"p":"El que se escribe a mano indica lo que decide su autor: la imagen, sus puertos, variables y volúmenes, y lo que pregunta la instalación. ProxMenux completa el resto al leer el archivo. Puede decir lo que un archivo Compose no puede: el texto de una pregunta, una contraseña generada durante la instalación, un perfil de GPU, el propietario de cada volumen, la comprobación del primer arranque o las credenciales que se muestran al terminar."
},
{
"steps":{
"items":[
{
"title":"Comprobar",
"body":"Un archivo con errores no se instala. Cada error indica el campo en el que está, y un archivo que no es JSON válido indica la línea y la columna."
},
{
"title":"Revisar",
"body":"Un archivo válido muestra lo que instala: imagen, dirección web, puertos, rutas persistentes, las variables que pide la instalación y los archivos que escribe."
},
{
"title":"Instalar",
"body":"La instalación es la de cualquier aplicación del catálogo, con ajustes por defecto o avanzados."
}
]
}
},
{
"calloutWarning":{
"title":"Un archivo que decide privilegios",
"body":"Un oci-compose decide qué se monta en el contenedor y con qué privilegios. El resumen lo indica antes de instalar: instala solo archivos que vengan de una fuente de confianza."
}
},
{
"p":"El formato se describe bloque a bloque, con dos ejemplos completos, en el <readmeLink>README del motor OCI</readmeLink>. El registro de una instalación se lee de la misma forma: solo se usa la plantilla con la que se instaló, y ninguna de las respuestas de esa instalación."