Команда joppa
Установить команду joppa и управлять Joppa из терминала или скрипта: состояние, процессы, сервисы, логи, диагностика, базы данных и прокси, в виде текста или JSON.
joppa управляет запущенным приложением. Она делает то же, что и окно, но из терминала или скрипта.
Установка
Настройки › Командная строка › Установить joppa. Joppa создаёт ссылку на команду, которая поставляется вместе с приложением, — в /usr/local/bin, если возможно, иначе в ~/.local/bin. Если этой папки нет в вашем PATH, в настройках будет строка, которую нужно добавить в ~/.zshrc.
joppa version
Команды
joppa # приложение на весь экран в терминале (TUI)
joppa status # прокси, CA, проекты и домены, сервисы
joppa services # сервисы и их состояние
joppa start postgres # запускает сервис
joppa stop redis # останавливает сервис
joppa logs postgres -n 200 -f # логи, непрерывно с -f
joppa procs # процессы проектов
joppa start acme # запускает весь проект («Запустить всё»)
joppa restart acme web # перезапускает процесс
joppa logs acme api --grep error # логи процесса с фильтром
joppa diagnose api.acme.test # почему этот домен не отвечает
joppa share app.acme.test # доступ в локальной сети, с QR-кодом
joppa dbs postgres # базы данных и их URL подключения
joppa db export postgres acme # экспортирует базу (см. ниже)
joppa proxy start # или stop
joppa open # показывает окно Joppa
joppa mcp # MCP-сервер (см. ниже)
joppa uninstall # удаляет Joppa вместе с этой командой
| Команда | Псевдоним | Назначение |
|---|---|---|
joppa или joppa tui |
Открывает TUI | |
joppa status |
st |
Прокси, CA, проекты, домены и их состояние, сервисы |
joppa services |
svc |
Сервисы и их состояние |
joppa start <service> |
Запускает сервис | |
joppa stop <service> |
Останавливает сервис | |
joppa logs <service> |
log |
Логи: -n / --lines N (по умолчанию 100), -f / --follow, --grep |
joppa procs [проект] |
ps, processes |
Процессы проекта или всех проектов, у которых они есть: состояние, порт, домены, время работы, перезапуски |
joppa start <проект> [процесс] |
Запускает процесс (и те, от которых он зависит) или весь проект | |
joppa stop <проект> [процесс] |
Останавливает процесс или весь проект | |
joppa restart <проект> [процесс] |
Перезапускает процесс или все, которые работают или отмечены | |
joppa logs <проект> [процесс] |
log |
Вывод процесса или всех процессов (с их именем в начале строки): -n, -f, --grep |
joppa diagnose <домен|проект> |
doctor |
Почему домен не отвечает: прокси, DNS, сертификат, порт, процесс, ответ |
joppa share [домен|проект] |
partager |
Открывает доступ к домену в локальной сети; --public — через туннель (см. Открыть доступ к домену). Без аргумента: открытые доступы |
joppa share stop <домен> |
Закрывает доступ (--public: только туннель) |
|
joppa dbs <service> |
databases |
Базы данных сервера и их URL |
joppa db <действие> <service> … |
Экспорт, импорт, копирование и снимки базы данных (см. Данные баз данных) | |
joppa proxy start|stop |
Запускает или останавливает прокси | |
joppa open |
Показывает окно | |
joppa mcp |
Запускает MCP-сервер на stdio | |
joppa uninstall |
Удаляет Joppa (см. Удаление) | |
joppa help, joppa version |
Справка и версия |
Указать сервис
Сервис можно указать как угодно: postgres, pg18, "PostgreSQL 18", его порт 5432 или его идентификатор.
Указать проект и его процессы
Проект указывается по имени, идентификатору или одному из его доменов; процесс — по имени на вкладке Процессы (web, api, queue…). joppa start, stop и logs принимают сервис или проект: если указано одно слово, Joppa сначала ищет сервис. Если слово обозначает и сервис, и проект, команда об этом сообщит: укажите порт сервиса или домен проекта.
joppa start и joppa restart ждут, пока процессы ответят или упадут (не дольше 30 секунд), а затем показывают их состояние; для упавшего процесса выводятся последние строки его логов, и команда завершается с кодом 1.
joppa diagnose проверяет каждое звено между браузером и сервером разработки и подсказывает, как исправить то, чего не хватает (подробности выводятся на английском, как и у инструмента MCP diagnose). Команда завершается с кодом 1, если домен не отвечает.
Параметры
| Параметр | Действие |
|---|---|
--json, -j |
Вывод в JSON, для скриптов (во всех командах) |
--launch |
Запускает Joppa, если он не запущен, без вопросов |
--grep <текст>, -g |
joppa logs: только строки, содержащие этот текст (без учёта регистра) |
--public |
joppa share: публичная ссылка через туннель (Joppa Pro) |
--tunnel <клиент> |
joppa share: cloudflared (по умолчанию), ngrok, localhost-run или pinggy; подразумевает --public |
--install |
joppa share --public: скачивает cloudflared, если его нет (с проверкой контрольной суммы) |
--theme nuit|jour|auto |
Тема TUI |
--no-motion |
Отключает анимации (или JOPPA_NO_MOTION=1) |
-h, -v |
Справка, версия |
Открыть доступ к домену
joppa share делает из терминала то же, что окно Открыть доступ (см. Открыть доступ к сайту). Доступ живёт в приложении: он остаётся открытым после завершения команды — до joppa share stop или закрытия Joppa.
joppa share app.acme.test # http://192.168.1.20:41306 и его QR-код
joppa share acme # первый активный домен проекта
joppa share app.acme.test --public # https://….trycloudflare.com (Joppa Pro)
joppa share app.acme.test --public --install # сначала скачивает cloudflared, если его нет
joppa share app.acme.test --tunnel pinggy # или ngrok, localhost-run
joppa share # домены с открытым доступом
joppa share stop app.acme.test # закрывает локальную сеть и туннель
joppa share stop app.acme.test --public # только туннель
В терминале адрес выводится вместе с QR-кодом для сканирования. С --public команда ждёт, пока туннель получит адрес (не дольше 50 секунд); если он закроется раньше, команда выводит его последние сообщения и завершается с кодом 1.
Данные баз данных
joppa db делает из терминала то же, что Экспортировать…, Импортировать…, Дублировать… и Снимки… на странице сервиса (см. Базы данных). Сервер должен быть запущен; относительные пути отсчитываются от текущей папки.
joppa db export postgres acme # ./acme-2026-10-23.sql.gz
joppa db export mysql boutique ~/boutique.sql # .sql, .sql.gz или .dump (PostgreSQL)
joppa db import postgres ~/acme.sql.gz # в базу acme (по имени файла)
joppa db import postgres ~/acme.dump --into acme_test
joppa db import postgres ~/joppa-postgres-17-2026-10-20.sql --replace # целый сервер
joppa db clone postgres acme acme_feature
joppa db snapshot postgres acme --name "перед миграцией"
joppa db snapshots postgres acme # идентификатор, дата, размер, имя
joppa db restore postgres acme 20261023-142501
| Команда | Назначение |
|---|---|
joppa db export <service> <база> [файл] |
Экспортирует базу; формат определяется расширением (по умолчанию .sql.gz) |
joppa db import <service> <файл> |
Импортирует .sql, .sql.gz, .dump или экспорт целого сервера; --into <база> выбирает базу, --replace заменяет существующую базу |
joppa db clone <service> <база> <копия> |
Копирует базу на том же сервере |
joppa db snapshot <service> <база> |
Делает снимок (Joppa Pro); --name <имя> задаёт ему имя |
joppa db snapshots <service> <база> |
Снимки базы, от самого нового к самому старому |
joppa db restore <service> <база> <снимок> |
Возвращает базу к снимку (Joppa Pro), предварительно сделав снимок её текущего содержимого |
Без --replace импорт, который заменил бы базу, останавливается, ничего не тронув, и предлагает другое имя. Расширения PostgreSQL, которых нет на сервере, показываются до импорта.
Удаление
joppa uninstall делает то же, что Настройки › Удаление: показывает, что Joppa установил на компьютер, и после подтверждения удаляет это. Сама команда joppa удаляется вместе с остальным. По умолчанию удаляется всё найденное, кроме данных сервисов; папка Joppa и приложение удаляются после закрытия Joppa. См. Файлы › Удалить всё.
joppa uninstall --dry-run # показывает, что будет удалено, ничего не удаляя
joppa uninstall # просит подтверждения (o/N)
joppa uninstall --yes --volumes # без вопросов, включая данные сервисов
joppa uninstall -y --keep license,app
| Параметр | Действие |
|---|---|
--dry-run |
Показывает список, ничего не удаляет |
--yes, -y |
Не просит подтверждения (обязателен вне терминала) |
--volumes |
Удаляет также данные сервисов (тома) и их контейнеры |
--keep <элементы> |
Оставляет элементы: mcp, cli, shell, containers, volumes, ca, dns, license, data, app |
Если какой-то шаг не удался (ввод пароля отменён, среда контейнеров остановлена…), остальные продолжаются, но папка Joppa и приложение сохраняются, а команда завершается с кодом 1: исправьте проблему и снова запустите joppa uninstall.
В скрипте
# Запустить Joppa при необходимости, затем PostgreSQL перед тестами
joppa start postgres --launch
joppa services --json | jq .
# Запустить проект и завершиться с ошибкой, если процесс упадёт
joppa start acme --json | jq '.processes[] | {name, status}'
Коды выхода
| Код | Значение |
|---|---|
0 |
Успех |
1 |
Ошибка; также процесс, упавший при запуске, или домен, который joppa diagnose считает неисправным |
2 |
Неверная команда или параметр |
3 |
Joppa не запущен |
Как это работает
Приложение записывает в свою папку конфигурации файл control.json (порт и токен, доступный для чтения только вам). Команда использует его, чтобы обращаться к локальному API приложения. Если Joppa не запущен, joppa сообщает об этом и предлагает его запустить.