Все поля apps.json: тип, значение по умолчанию и назначение
Диалог «Изменить приложение» показывает те же поля под теми же названиями. Поля, не относящиеся к
выбранному типу, затемнены в диалоге, но всё равно сохраняются, с одним исключением:
stopCommand сохраняется только пока killMode равен command.

- Список
killMode. Поля, которые он не использует, остаются затемнёнными.
| Поле | Тип | Обязательно | Где используется | Что делает |
|---|---|---|---|---|
id |
строка | да | все | Уникальный ключ. Буквы, цифры, ., _, -, не начинается с -. См. Обзор. |
name |
строка | да | все | Подпись на боковой панели. Не пустая. |
group |
строка | да | все | Заголовок на боковой панели, под которым перечислено приложение. При ручной правке не может быть пустой; диалог сохраняет пустую группу как Apps. Любой текст; новое название создаёт новую группу. |
type |
строка | да | все | web, desktop, static или cli. См. Типы приложений. |
command |
строка | все, кроме static |
все | Выполняется в терминале для запуска приложения, через cmd /c в Windows и $SHELL -c в остальных системах (/bin/sh, если SHELL не задана). Для static необязательна. |
cwd |
строка | нет | все с command |
Папка, в которой выполняется команда. По умолчанию это рабочая папка самого Moonpool. Поддерживает токены и ./. См. Пути и окружение. |
port |
целое число, от 1 до 65535 | нет | любой | Работает, пока что-то отвечает на этом порту на localhost (IPv4 или IPv6). Используется killMode port. |
processName |
строка | нет | любой, в основном desktop |
Работает, пока существует процесс с этим именем. Без учёта регистра, с .exe или без, поэтому my-app совпадает с my-app.exe. В Linux не более 15 символов. Используется killMode processName. |
mcpProcessName |
строка | нет | любой с processName |
Шаблон с подстановочными знаками для имени процесса MCP-сервера этого приложения. * соответствует любой последовательности символов, ? одному символу. Регистр не учитывается, шаблон применяется ко всему имени, .exe необязателен. Подходящий процесс считается MCP-сервером приложения (вложенная строка MCP на боковой панели), и первым аргументом ему не обязательно быть mcp. См. mcpProcessName. |
url |
строка | только static |
web, static |
Страница для открытия. Открываются только URL с http://, https://, mailto: и file://. |
openBrowser |
логическое, по умолчанию false |
нет | любой тип с url (диалог затемняет его для desktop и cli) |
Автоматически открывать url, как только Moonpool обнаружит, что приложение запущено (см. ниже). |
killMode |
строка | нет | все | Дополнительная очистка при остановке и перезапуске: processName, port, command или none. См. Остановка и перезапуск. |
stopCommand |
строка | нет | killMode command |
Команда, выполняемая при остановке. Во всех остальных режимах игнорируется. |
env |
объект со строками | нет | все | Дополнительные переменные окружения. Диалог редактирует их как по одной KEY=VALUE в строке. |
icon |
строка | нет | все | Изображение на боковой панели: путь к файлу, URL http(s) или URI data:. Задаётся через Выбрать значок… в контекстном меню приложения или вручную. |
note |
строка | нет | все | Подсказка при наведении на приложение на боковой панели. |
Запись с env и killMode:
{ "id": "api", "name": "API", "group": "Web apps", "type": "web", "command": "npm start", "port": 3000, "env": { "PORT": "3000", "NODE_ENV": "development" }, "killMode": "port"}О том, как port и killMode работают вместе, см.
Поиск и завершение процесса, занимающего порт.
mcpProcessName
Заголовок раздела «mcpProcessName»По умолчанию Moonpool считает процесс MCP-сервером приложения, когда его имя совпадает с
processName, а первый аргумент равен mcp, например notes-app.exe mcp. Задайте
mcpProcessName, когда сервер работает под другим именем: приложение отслеживает один exe,
а его MCP-сервер - другой (mog.exe mcp), либо это переименованная копия сервера.
Значение - это шаблон с подстановочными знаками. * соответствует любой последовательности символов (в том числе пустой), а ?
ровно одному символу. Сравнение выполняется без учёта регистра со всем именем процесса, а
шаблон без .exe совпадает и с именем с .exe. Пустое значение считается незаданным.
{ "id": "destiny", "name": "Destiny", "group": "Desktop apps", "type": "desktop", "processName": "destiny", "mcpProcessName": "destiny-mcp-*"}Это совпадёт с переименованной копией, например destiny-mcp-2706210170.exe. Процесс, подходящий под
mcpProcessName, считается сервером независимо от того, был ли он запущен с mcp, и никогда не
считается работой самого приложения. Если шаблон подходит и под сам processName (например,
destiny*), Moonpool всё равно требует аргумент mcp, поэтому настоящее приложение никогда не будет принято
за свой MCP-сервер. См. Настройка MCP.
openBrowser
Заголовок раздела «openBrowser»Moonpool открывает url один раз, когда приложение, запущенное Moonpool, впервые показывается как «работает». Для
этого нужен port или processName, чтобы это обнаружить. Без них «работает» означает лишь, что
процесс терминала жив, и браузер автоматически не открывается. Отключите openBrowser,
если ваша команда сама открывает браузер. Запись static без команды открывает url
при каждом нажатии «Запустить», независимо от openBrowser.
Два приложения с одинаковым port помечаются на боковой панели.
Значком приложения становится первый из существующих вариантов:
- Поле
icon. icons\<id>.<ext>в папке конфигурации, напримерicons\site.png.- Файл значка в собственной папке приложения (его
cwdили папка изurlвидаfile:///). - Для
desktop- значок собранного или запущенного.exe. - Для
webиstatic-/favicon.icoсайта, когда сервер запущен. - Значок-глиф для типа.
Большинству приложений настройка значка не нужна.
Moonpool: бесплатное программное обеспечение от FasterDB