macOS¶
Portable-бандл для macOS поставляется отдельно для Apple Silicon и Intel:
darwin-arm64 и darwin-x64. Внутри — Node.js 22, приложение и bin/synth;
Homebrew и Node.js на машине не нужны.
Поддерживаемые версии¶
| Версия macOS | Кодовое имя | Архитектура | Артефакт |
|---|---|---|---|
| 26 | Tahoe | Intel (x86_64) |
synth-<version>-darwin-x64.tar.gz |
| 26 | Tahoe | Apple Silicon (arm64) |
synth-<version>-darwin-arm64.tar.gz |
| 27 | Golden Gate | Apple Silicon (arm64) |
synth-<version>-darwin-arm64.tar.gz |
macOS 27 не поддерживает Intel
Для Intel-машин используйте macOS 26 Tahoe и артефакт darwin-x64.
Артефакт darwin-arm64 на Intel не запускается; darwin-x64 на Apple
Silicon запускается только через Rosetta и не является поддерживаемым
сценарием.
Проверьте версию и архитектуру:
uname -m возвращает arm64 или x86_64.
Распаковка и проверка¶
cd <bundle-dir>
shasum -a 256 -c SHA256SUMS
tar -xzf synth-<version>-darwin-arm64.tar.gz
cd synth-<version>-darwin-arm64
./bin/synth --version
Для Intel замените arm64 на x64.
Установка в пользовательский контур¶
На macOS Synth ставится per-user: системный LaunchDaemon не используется.
Пример установки в ~/Applications/Synth:
mkdir -p ~/Applications
mv synth-<version>-darwin-arm64 ~/Applications/Synth
~/Applications/Synth/bin/synth --version
Запуск:
Сервер слушает 127.0.0.1:4300. Если ключ не задан, synth serve создаст
устойчивый ключ в ~/.synth/data/secrets/api-key и напечатает его при старте.
Этот ключ вводится в интерфейсе.
Ключ и автозапуск
Для LaunchAgent удобно не указывать ключ в plist: он будет создан в каталоге данных. Не храните API-ключ в открытом plist — файл читается другими процессами пользователя.
Gatekeeper и карантин¶
Скачанный из сети архив может получить атрибут com.apple.quarantine. При
запуске macOS покажет предупреждение, что разработчик не подтверждён.
- Проверьте SHA256 архива и распакованных файлов — Проверка SHA256.
- Посмотрите атрибуты:
-
Для локального запуска одобрите конкретный артефакт средствами macOS, если это разрешено политикой организации. Не снимайте карантин рекурсивно с каталогов и не отключайте Gatekeeper.
-
В управляемом парке добавьте Synth в allowlist MDM по хешу/пути.
Не отключайте Gatekeeper глобально
spctl --master-disable и отключение SIP ослабляют защиту всей системы.
Для закрытого контура добавьте Synth в allowlist по хешу (MDM) или одобрите
конкретный артефакт средствами ОС, если это разрешено политикой.
LaunchAgent (автозапуск)¶
LaunchAgent запускает Synth при входе пользователя и перезапускает при падении.
Файл — ~/Library/LaunchAgents/ru.itphx.synth.plist. Метка (Label) в бандле
может отличаться; если установщик создал свой plist, используйте его.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>ru.itphx.synth</string>
<key>ProgramArguments</key>
<array>
<string>/Users/<user>/Applications/Synth/bin/synth</string>
<string>serve</string>
<string>--home</string>
<string>/Users/<user>/.synth</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardOutPath</key>
<string>/Users/<user>/Library/Logs/Synth/synth.log</string>
<key>StandardErrorPath</key>
<string>/Users/<user>/Library/Logs/Synth/synth.err.log</string>
</dict>
</plist>
Замените <user> на имя домашнего каталога. Создайте каталог логов и загрузите
агент:
mkdir -p ~/Library/Logs/Synth
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/ru.itphx.synth.plist
launchctl kickstart -k gui/$(id -u)/ru.itphx.synth
launchctl print gui/$(id -u)/ru.itphx.synth | head -n 20
Остановка и выгрузка:
Логи:
Только LaunchAgent
LaunchDaemon (системный, до входа пользователя) для Synth не используется. Это осознанное ограничение per-user поставки: данные, ключи и обновления принадлежат пользователю.
Каталоги¶
| Что | Пример пути | Как изменить |
|---|---|---|
| Установка | ~/Applications/Synth |
выбрать другой каталог при распаковке |
| Home (конфиг и данные) | ~/.synth |
--home / SYNTH_HOME |
| Данные | ~/.synth/data |
--data-dir / SYNTH_DATA_DIR |
| Секреты | ~/.synth/data/secrets |
внутри каталога данных |
| Логи LaunchAgent | ~/Library/Logs/Synth |
пути в plist |
Точная раскладка бандла указана в manifest.json; пути выше — пример для
ручной установки.
Обновление и удаление¶
- Обновление — выгрузить LaunchAgent, заменить каталог приложения новой
версией, выполнить
synth migrate --yes, загрузить агент обратно. Не используйтеsynth updateв офлайне — Эксплуатация. - Удаление —
launchctl bootout, затем удалить~/Applications/Synth. Данные в~/.synthпо умолчанию сохраняются; для удаления используйтеsynth uninstall --purge --yes.