Todos los campos de apps.json: tipo, valor predeterminado y qué hacen
El diálogo Editar app muestra los mismos campos con los mismos nombres. Los campos que no se aplican al
tipo seleccionado aparecen atenuados en el diálogo pero se guardan igualmente, con una excepción:
stopCommand solo se guarda mientras killMode es command.

- El selector
killMode. Los campos que no usa permanecen atenuados.
| Campo | Tipo | Obligatorio | Lo usan | Qué hace |
|---|---|---|---|---|
id |
string | sí | todos | Clave única. Letras, dígitos, ., _, -, sin empezar por -. Consulta Resumen. |
name |
string | sí | todos | Etiqueta en la barra lateral. No puede estar en blanco. |
group |
string | sí | todos | Encabezado de la barra lateral bajo el que aparece la app. No puede estar en blanco en una edición a mano; el diálogo guarda un grupo en blanco como Apps. Cualquier texto; un nombre nuevo crea un grupo nuevo. |
type |
string | sí | todos | web, desktop, static o cli. Consulta Tipos de app. |
command |
string | todos salvo static |
todos | Se ejecuta en una terminal para iniciar la app, mediante cmd /c en Windows y $SHELL -c en el resto (/bin/sh si SHELL no está definido). Opcional para static. |
cwd |
string | no | todos con un command |
Carpeta en la que se ejecuta el comando. De forma predeterminada, la carpeta de trabajo del propio Moonpool. Admite tokens y ./. Consulta Rutas y entorno. |
port |
integer, de 1 a 65535 | no | cualquiera | En ejecución mientras algo responda en este puerto de localhost (IPv4 o IPv6). Lo lee killMode port. |
processName |
string | no | cualquiera, sobre todo desktop |
En ejecución mientras exista un proceso con este nombre. Sin distinguir mayúsculas de minúsculas, con o sin .exe, de modo que my-app coincide con my-app.exe. En Linux, 15 caracteres o menos. Lo lee killMode processName. |
mcpProcessName |
string | no | cualquiera con un processName |
Patrón con comodines del nombre de proceso del servidor MCP de esta app. * coincide con cualquier secuencia de caracteres, ? con un carácter. Sin distinguir mayúsculas de minúsculas, se compara con el nombre completo, y .exe es opcional. Un proceso que coincide cuenta como el servidor MCP de la app (la subfila MCP de la barra lateral) y no necesita mcp como primer argumento. Consulta mcpProcessName. |
url |
string | solo static |
web, static |
Página que se abre. Solo se abren las URL http://, https://, mailto: y file://. |
openBrowser |
boolean, predeterminado false |
no | cualquier tipo con una url (el diálogo la atenúa para desktop y cli) |
Abre url automáticamente cuando Moonpool detecta que la app está activa (consulta más abajo). |
killMode |
string | no | todos | Limpieza adicional al Detener y Reiniciar: processName, port, command o none. Consulta Detener y reiniciar. |
stopCommand |
string | no | killMode command |
Comando que se ejecuta al Detener. Se ignora en cualquier otro modo. |
env |
object of strings | no | todos | Variables de entorno adicionales. El diálogo las edita como una KEY=VALUE por línea. |
icon |
string | no | todos | Imagen de la barra lateral: una ruta de archivo, una URL http(s) o un URI data:. Defínela desde Elegir icono… en el menú contextual de la app o a mano. |
note |
string | no | todos | Información emergente al pasar el cursor por la app en la barra lateral. |
Una entrada que usa env y killMode:
{ "id": "api", "name": "API", "group": "Web apps", "type": "web", "command": "npm start", "port": 3000, "env": { "PORT": "3000", "NODE_ENV": "development" }, "killMode": "port"}Consulta Encontrar y terminar el proceso que usa un puerto
para ver cómo funcionan juntos port y killMode.
mcpProcessName
Sección titulada «mcpProcessName»De forma predeterminada, Moonpool trata un proceso como el servidor MCP de la app cuando su nombre
coincide con processName y su primer argumento es mcp, como notes-app.exe mcp. Define
mcpProcessName cuando el servidor se ejecuta con otro nombre: una app que vigila un exe mientras su
servidor MCP es otro (mog.exe mcp), o una copia renombrada del servidor.
El valor es un patrón con comodines. * coincide con cualquier secuencia de caracteres (incluso vacía) y
? con exactamente uno. Se compara sin distinguir mayúsculas de minúsculas con el nombre completo del
proceso, y un patrón sin .exe también coincide con el nombre con .exe. Un valor vacío cuenta como no
definido.
{ "id": "destiny", "name": "Destiny", "group": "Desktop apps", "type": "desktop", "processName": "destiny", "mcpProcessName": "destiny-mcp-*"}Esto coincide con una copia renombrada como destiny-mcp-2706210170.exe. Un proceso que coincide con
mcpProcessName es el servidor, se haya iniciado o no con mcp, y nunca cuenta como la propia app en
ejecución. Si el patrón también coincide con processName (por ejemplo destiny*), Moonpool sigue
exigiendo el argumento mcp, de modo que la app real nunca se confunde con su servidor MCP. Consulta
Configuración de MCP.
openBrowser
Sección titulada «openBrowser»Moonpool abre url una sola vez, cuando una app que Moonpool inició aparece por primera vez como en
ejecución. Para detectarlo hace falta un port o un processName. Sin ninguno de los dos, “en
ejecución” solo significa que el proceso de la terminal sigue vivo, y el navegador no se abre
automáticamente. Desactiva openBrowser si tu comando abre un navegador por sí mismo. Una entrada
static sin comando abre url cada vez que pulsas Iniciar, con independencia de openBrowser.
Dos apps configuradas con el mismo port se señalan en la barra lateral.
El icono de una app es el primero de estos que exista:
- El campo
icon. icons\<id>.<ext>en la carpeta de configuración, por ejemploicons\site.png.- Un archivo de icono en la propia carpeta de la app (su
cwd, o la carpeta de unaurlfile:///). - Para
desktop, el icono de su.execompilado o en ejecución. - Para
webystatic, el/favicon.icodel sitio, una vez que el servidor está activo. - Un glifo del tipo.
La mayoría de las apps no necesitan ningún ajuste de icono.
Moonpool es software gratuito de FasterDB