Установщик Mockarty
mockarty-cli install — это канонический способ развернуть любой
бинарник платформы Mockarty в любом из поддерживаемых форматов: «голый»
бинарник, Docker Compose или Kubernetes (Helm).
Компоненты
mockarty-cli install умеет ставить шесть платформенных бинарников:
| Бинарник | Что делает |
|---|---|
mockarty |
Центральный сервер админки (Web UI, REST + gRPC API, все фичи) |
mockarty-resolver |
Лёгкий узел-резолвер моков для распределённых развёртываний |
mockarty-runner |
Раннер для API-тестов, perf, фаззинга |
mockarty-server-generator |
Генератор автономных mock/MCP/gRPC/SOAP-серверов из спек |
mockarty-desktop |
Кросс-платформенный десктоп (standalone / connected / personal) |
mockarty-cli |
Сам CLI (канал self-update) |
Форматы развёртывания
| Формат | Флаг | Когда выбирать |
|---|---|---|
| Бинарник | --mode binary (по умолчанию) |
Один хост, systemd / launchd / Windows Service |
| SQLite | --mode sqlite |
Самый простой старт: один бинарник, встроенная база, без PostgreSQL и Redis |
| Compose | --mode docker-compose |
Один хост или VM, есть Docker |
| Kubernetes | --mode kubernetes |
Production-кластер, есть Helm 3 |
| Operator | --mode operator |
Kubernetes, где кластером управляет оператор Mockarty |
Быстрый старт
Десктопное приложение для Linux
После загрузки Linux-архива Desktop распакуйте его и запустите установщик из
пакета:
VERSION=1.2.3
tar -xzf "Mockarty-${VERSION}-linux-amd64.tar.gz"
cd mockarty-desktop
./install.sh
Замените 1.2.3 на версию загруженного релиза. На ARM64 используйте архив
linux-arm64.
Установка по умолчанию выполняется для текущего пользователя и не требует прав
администратора. Приложение попадает в $HOME/.local/bin, а desktop-файл — в
$HOME/.local/share/applications. Если каталога ещё нет в PATH, запускайте
приложение как $HOME/.local/bin/mockarty-desktop или добавьте каталог в
PATH.
Чтобы обновить существующую установку из такого пакета, распакуйте новый архив
и запустите его установщик с --force:
./install.sh --force
Обновление выполняется, только если существующие Desktop-файлы всё ещё
принадлежат предыдущей пакетной установке. Установщик не перезаписывает чужие
файлы, оказавшиеся по тем же путям.
После успешного обновления сохраняется ровно один проверенный слот предыдущего
пакета. Чтобы транзакционно поменять текущий и сохранённый слоты местами,
выполните:
$HOME/.local/bin/mockarty-desktop-rollback
Откат не выполняется, если один из слотов отсутствует, изменён или больше не
соответствует своей квитанции владения. После успешного отката заменённый слот
остаётся единственным слотом отката, поэтому той же командой можно отменить
переключение.
В упакованной нативной сборке Desktop откройте Справка → Проверить
обновления… для подписанного онлайн-канала или Справка → Импортировать
офлайн-обновление… для отдельно полученного пакета. Оба пути одинаково
проверяют метаданные, индекс релиза, хеш, подпись пакета и платформенную подпись.
Фоновое скачивание не выполняется, а установка не начинается, пока вы не
выберете Установить проверенное обновление для точного кандидата.
Нативная установка предлагается, только если точный пакет Desktop содержит
встроенное доверие релиза и принятый помощник для платформы. Иначе Mockarty
сохраняет проверенный пакет, сообщает, что установка не запускалась, и
предлагает ручной путь. Используйте только Windows- или macOS-релиз, в
примечаниях которого этот точный пакет указан как подписанный для платформы;
не подтверждайте неожиданный запрос UAC или Gatekeeper. Dev-сборка показывает
недоступность канала и не переключается на устаревшую замену бинарника.
Состояние нативного обновления Desktop
Диалог всегда показывает текущую версию и одно основное действие. Кнопка
Данные проверки раскрывает версию-кандидат, канал, ограниченный размер,
префикс SHA-256, доверие издателю и инструкции восстановления без локальных
путей и внутренних ошибок.
| Состояние | Что означает | Что делать |
|---|---|---|
| Проверка | Проверяются метаданные или офлайн-пакет; установка не началась | Дождаться или отменить проверку |
| Актуальная версия | В подписанном канале нет более нового совместимого пакета | Закрыть или проверить офлайн-пакет |
| Готово | Точный кандидат проверен и сохранён | Изучить данные и устанавливать только при доступном нативном помощнике |
| Транзакция выполняется | Помощник владеет устойчивым запросом и проверяет готовность после перезапуска | Сохранить оба пакета; продолжать только по предложению диалога |
| Завершено | Кандидат прошёл проверку готовности | Закрыть диалог |
| Предыдущая версия восстановлена | Готовность не подтверждена, восстановлен сохранённый слот | Изучить данные восстановления перед новой проверкой |
| Ручное восстановление | Нельзя доказать завершение или откат | Сохранить состояние и пакеты; выполнить показанные инструкции платформы |
Приложение закрывается и перезапускается только после устойчивого приёма
точного проверенного пакета внешним помощником. Успех показывается лишь после
проверки готовности нового процесса. При откате или ручном восстановлении не
удаляйте сохранённый пакет и каталог состояния обновления.
Чтобы удалить стандартную пользовательскую установку:
$HOME/.local/bin/mockarty-desktop-uninstall
Установщик также пытается зарегистрировать ссылки mockarty:// в текущем
Linux-окружении. Это best-effort шаг: если нужных desktop-утилит нет или они
отклоняют обновление, установщик выводит предупреждение, но оставляет приложение
установленным. Чтобы ссылки начали открываться в Mockarty, может потребоваться
обновить окружение или заново войти в desktop-сессию.
Просто бинарник
mockarty-cli install mockarty # latest
mockarty-cli install mockarty --mode sqlite # проще всего: встроенная база
mockarty-cli install mockarty --version 1.2.3 # конкретная версия
mockarty-cli install --all # все компоненты
Имя admin-node принимается как псевдоним mockarty, а server-generator —
как псевдоним mockarty-server-generator.
После установки в каталог попадает:
- сам бинарник (
mockarty-linux-amd64) - симлинк без суффикса (
mockarty) - README для бинарника (
mockarty.README.md) - стартовый env-файл (
mockarty.env) - service-юнит (
mockarty.serviceдля Linux,ru.mockarty.mockarty.plist
для macOS,install-mockarty-service.ps1для Windows)
Секция “Next Steps” в README расписывает активацию лицензии, смену
admin-пароля и подключение раннеров/резолверов.
Docker Compose
mockarty-cli install mockarty --mode docker-compose
docker compose up -d
В текущем каталоге появляются docker-compose.yml + .env (файл .env
создаётся с правами только для владельца — в него вы будете вписывать
учётные данные). Каждый компонент — отдельный сервис; PostgreSQL и Redis
добавляются автоматически, если в выборке есть админский сервер.
Если в выборке есть resolver или runner, сначала поднимите админа — эти
два компонента аутентифицируются токенами, которые выпускает админ, и в
сгенерированном .env их поля закомментированы:
docker compose up -d mockarty # 1. только админ
# 2. создайте токен резолвера и токен раннера в админе (Настройки → Интеграции)
# 3. впишите их в .env как RESOLVER_API_TOKEN / RUNNER_API_TOKEN
docker compose up -d # 4. затем остальное
CLI печатает те же четыре шага сразу после записи файлов.
Kubernetes / Helm
mockarty-cli install --all --mode kubernetes --namespace=mockarty
Нужны helm и kubectl в PATH. Установщик собирает values.yaml,
подключает Bitnami-репозиторий для саб-чартов PostgreSQL + Redis и
запускает helm upgrade --install против встроенного Helm-чарта Mockarty.
Флаг --dry-run пишет только values + README, не трогая кластер.
Закрепляйте образ, если обновление должно быть воспроизводимым. Чарт выводит
политику загрузки из самого образа: sha256:-дайджест или закреплённый тег
тянутся только при отсутствии образа на узле, а latest — при каждом старте.
Поэтому образ с тегом latest, уже лежащий на узле, helm upgrade не обновит:
имя образа, которое он сравнивает, не меняется. Передавайте явный тег или
дайджест (--set admin.image.tag=<версия>), а pullPolicy: Always используйте
только для тега, который вы сознательно перезаливаете под тем же именем. Список
значений — в README чарта.
Генерация конфигов без загрузки (setup)
Чтобы получить файлы развёртывания, не скачивая бинари (образ собирается
отдельно или нужны только манифесты):
mockarty-cli setup docker-compose # docker-compose.yml + .env
mockarty-cli setup env # только environment-файл
mockarty-cli setup kubernetes # Helm values / K8s-манифесты
Кросс-платформенная загрузка
install по умолчанию качает для текущей ОС/архитектуры. Переопределите,
чтобы подготовить бинари под другую цель, или выберите канал релиза:
mockarty-cli install mockarty --os linux --arch arm64
mockarty-cli install mockarty --channel landing # mockarty.ru вместо GitHub
Обновление
mockarty-cli upgrade all
mockarty-cli upgrade mockarty-runner
mockarty-cli upgrade mockarty --version 1.5.0
mockarty-cli update # проверить и обновить все отслеживаемые компоненты
upgrade переустанавливает до запрошенной (или последней) версии; update
проверяет все отслеживаемые компоненты и обновляет только те, у которых есть
более новый релиз.
CLI читает ~/.mockarty/installed.json, для каждого отслеживаемого
компонента берёт latest и переустанавливает только если версия
отличается. --force форсирует переустановку той же версии (например,
после повреждённой загрузки).
Удаление
mockarty-cli uninstall mockarty-runner
mockarty-cli uninstall all
Удаляет бинарник, симлинк, per-binary README и сгенерированный
service-юнит, чистит запись в манифесте. Остановите сервис заранее
(systemctl stop, launchctl unload, Stop-Service) — uninstall не
тронет запущенный процесс.
versions
Покажет таблицу «установлено / доступно»:
mockarty-cli versions
Полезно перед апгрейдом — сразу видно, кто отстал.
Air-gapped установки
Mockarty работает полностью без интернета: веб-интерфейс, шрифты, иконки и
документация встроены в бинарник и ничего не загружают извне. Заранее нужно
подготовить только набор файлов для изолированного хоста. Соберите его один раз
на хосте с доступом к сети:
SOURCE_DATE_EPOCH=1767225600 mockarty-cli install bundle \
--version 1.0.0 \
--components mockarty,mockarty-resolver,mockarty-runner \
--platforms linux-amd64 \
--chart ./mockarty \
--compose ./docker-compose.yml \
--values ./values.onprem.yaml \
--with-images --images-compose ./docker-compose.yml \
--out mockarty-1.0.0-airgap.tar.gz
В одном каталоге появятся:
| Файл | Что это |
|---|---|
mockarty-1.0.0-airgap.tar.gz |
Бинарники для выбранных платформ, Helm-чарт, файлы Compose и values, а также манифест со списком всех файлов и их SHA-256 |
mockarty-1.0.0-airgap.tar.gz.sha256 |
Контрольная сумма самого бандла — опубликуйте её или передайте по отдельному каналу |
mockarty-1.0.0-airgap-images.tar |
Образы контейнеров (docker save), закреплённые по SHA-256 в манифесте бандла |
load-images.sh |
Скрипт, который проверяет архив образов и загружает его в Docker |
Бандл воспроизводим: одинаковые входные данные и одинаковый SOURCE_DATE_EPOCH
дают побайтно одинаковый файл, поэтому два человека могут сравнить контрольные
суммы, а не доверять друг другу на слово. --from-dir <каталог> берёт бинарники
из локальной сборки релиза вместо скачивания.
Перенесите весь каталог на изолированный хост и проверьте его перед установкой:
sha256sum -c mockarty-1.0.0-airgap.tar.gz.sha256
mockarty-cli install bundle-verify mockarty-1.0.0-airgap.tar.gz
bundle-verify отклоняет бандл, если хотя бы один файл отсутствует, добавлен,
изменён или не является обычным файлом, и проверяет лежащий рядом архив образов.
Затем установите:
mockarty-cli install airgap-install mockarty-1.0.0-airgap.tar.gz \
--dir /opt/mockarty \
--load-images mockarty-1.0.0-airgap-images.tar
Бинарники для этой платформы попадут в /opt/mockarty, чарт, файлы Compose и
values — в /opt/mockarty/mockarty-assets. Установщик сначала проверяет весь
бандл и ничего не записывает, если проверку не прошёл хотя бы один файл.
Kubernetes без доступа в интернет. Загрузите образы в свой приватный реестр
и установите чарт из распакованных файлов — зависимости PostgreSQL и Redis уже
лежат внутри чарта, поэтому обращения к репозиторию чартов не будет:
helm upgrade --install mockarty /opt/mockarty/mockarty-assets/chart/mockarty \
-f /opt/mockarty/mockarty-assets/values/values.onprem.yaml \
--set global.registry=registry.local/mockarty \
--set postgresql.image.registry=registry.local \
--set redis.image.registry=registry.local
Если вы используете внешние PostgreSQL и Redis, отключите встроенные
(postgresql.enabled=false, redis.enabled=false) и укажите чарту свои.
Зеркала релизов
Если есть приватное зеркало, но нет доступа к github.com, задайте URL:
export MOCKARTY_RELEASE_MIRROR=https://gh-mirror.corp.example.com
mockarty-cli install --all
Установщик автоматически перепишет все URL ассетов через зеркало.
Активация сервиса
После установки service-юнит сгенерирован, но не загружен в
менеджер сервисов — это требует root, и установщик намеренно остаётся
непривилегированным. README печатает точную команду для вашей ОС:
| ОС | Команда |
|---|---|
| Linux | sudo systemctl daemon-reload && sudo systemctl enable --now mockarty |
| macOS | launchctl load ~/Library/LaunchAgents/ru.mockarty.mockarty.plist |
| Windows | powershell -ExecutionPolicy Bypass -File install-mockarty-service.ps1 |