Начните с подключения

Настройте доступ,
а затем наладьте рабочий процесс.

Здесь собраны инструкции по работе с выделенным Mac mini: от проверки данных для доступа до настройки системы и инструментов, сборок, резервного копирования и продления аренды. Необязательно читать всё сразу — найдите нужное для текущей задачи.

Уже есть экземпляр? Проверьте данные для подключения и статус заказа в консоли. Нужна помощь? Войдите в аккаунт и отправьте заявку. Не публикуйте пароли, закрытые ключи и материалы для подписи.

Сначала подключение

Четыре проверки при первом входе

Для каждого шага есть понятный критерий готовности. Сначала проверьте настройку в интерактивном сеансе, затем передайте её автоматизированным задачам.

01Проверка данных

Первый вход после получения данных для доступа

Сопоставьте заказ, машину и данные подключения. Сначала проверьте один экземпляр, чтобы случайно не указать в клиенте адрес другого узла.

Показать шаги
  1. Войдите в консоль и откройте сведения об экземпляре в нужном заказе. Проверьте модель, узел, срок аренды и статус выдачи.
  2. Сохраните адрес, имя пользователя и фактический порт. Используйте данные из консоли — не собирайте их из пересланных писем и переписки.
  3. После первого входа смените пароль, выполните sw_vers для проверки версии системы, затем запустите df -h и проверьте свободное место на диске.
  4. Запишите пути к каталогам проекта и сборок, а также имя ответственного. Не добавляйте общие учётные данные в репозиторий.

Готово, если:вы можете подключиться повторно, данные системы соответствуют заказу и вы знаете, где сохраняются результаты сборки. Если оплата прошла, но данные для доступа ещё не получены, отправьте заявку в заказе — не создавайте дубликаты.

02Удалённое подключение

Настройка общего экрана и SSH-ключа

Графический интерфейс удобен для начальной настройки и отладки, а SSH — для команд, передачи файлов и автоматизации.

Показать шаги
  1. Подключитесь к общему экрану по выданным данным. В настройках системы откройте «Основные → Общий доступ» и разрешите подключение только нужным пользователям.
  2. Для работы в терминале проверьте, включён ли «Удалённый вход». Создайте локальный SSH-ключ или выберите существующий и передайте на сервер только открытый ключ.
  3. Добавьте открытый ключ в файл пользователя ~/.ssh/authorized_keysи установите права 700для каталога и 600для файла.
  4. Не закрывая текущий сеанс, откройте ещё одно окно терминала и проверьте вход по ключу. Только после этого меняйте способ аутентификации. Закрытый ключ храните локально или в системе управления ключами команды.

Готово, если:к графическому сеансу можно подключиться, а SSH-ключ проходит проверку в новом сеансе. Порт и настройки брандмауэра сверяйте с фактическими данными подключения.

Инструкции по подключению для разных систем
03Проверка инструментов

Установка и проверка инструментов командной строки Xcode

Сначала проверьте, соответствует ли текущая среда требованиям проекта. Не обновляйте систему только потому, что в ней уже установлен Xcode.

Показать шаги
  1. Выполните xcodebuild -version и xcode-select -p чтобы проверить версию и путь к инструментам разработчика.
  2. Если инструменты командной строки не установлены, выполните xcode-select --install. Для полной сборки нужна версия Xcode, подходящая проекту: инструменты командной строки не включают все SDK.
  3. Если установлено несколько версий Xcode, используйте DEVELOPER_DIR чтобы указать каталог инструментов для отдельной задачи, или выполните xcode-select чтобы изменить выбранную в системе версию.
  4. Примите лицензионные условия, установите компоненты для первого запуска и соберите и протестируйте небольшой проект.

Готово, если:версия Xcode в терминале совпадает с версией в логах CI, а нужный SDK доступен. Укажите версию в настройках проекта или окружении запуска runner, не полагаясь на память оператора.

04Настройка автоматизации

Регистрация self-hosted runner на Mac mini server

Сначала проверьте ручную сборку, затем передайте задачи runner. Команду регистрации берите в настройках проекта на платформе CI.

Показать шаги
  1. Создайте отдельного пользователя и рабочий каталог для сборок. В настройках проекта CI скачайте пакет runner для macOS и Apple Silicon.
  2. Зарегистрируйте runner с краткосрочным токеном. Укажите в метках систему, чип, узел и назначение. Не храните долгосрочные токены доступа в репозитории.
  3. Сначала запустите простую задачу на переднем плане и проверьте PATH, путь к Xcode, доступ к связке ключей и загрузку результатов сборки.
  4. Убедившись, что прав достаточно для запуска без участия пользователя, настройте службу по инструкции платформы CI. Для задач с графическим интерфейсом отдельно проверьте требования к сеансу.

Готово, если:тестовое изменение запускает задачу, в логах виден нужный экземпляр, а результаты сборки сохраняются вне машины. Выделенная машина не означает неограниченный параллелизм: сначала проверьте последовательный запуск, затем увеличивайте число параллельных задач с учётом памяти и диска.

Заложите воспроизводимость в процесс

Сборки, подпись и кеширование

Для проектов Unity, Flutter и нативных приложений фиксируйте версии инструментов, файл блокировки зависимостей и команду сборки. Материалы для подписи храните отдельно от восстанавливаемого кеша.

Сборка Unity-проекта для iOS в облаке

Разделите экспорт проекта Unity и архивирование в Xcode на два этапа, каждый из которых можно проверить отдельно. Так будет проще определить, где возникла ошибка.

Показать шаги
  1. Зафиксируйте версию редактора Unity, зависимости пакетов и модуль поддержки сборок для iOS. Сначала проверьте требования лицензии проекта, чтобы не принять проблему с лицензией за неисправность машины.
  2. Синхронизируйте проект и экспортируйте его в Xcode. Храните каталог сборки отдельно от исходников, сохраняйте лог экспорта и идентификатор коммита.
  3. Установите необходимые проекту нативные зависимости и проверьте схему, тип целевого устройства, Bundle Identifier и настройки подписи.
  4. Создайте архив (Archive) и проверьте результат экспорта, затем загрузите его через принятый в команде процесс распространения. Успешная компиляция ещё не означает, что приложение готово к распространению.

Сохраняйте:идентификатор коммита, версии инструментов, логи экспорта и Archive, а также контрольную сумму результата. Перед повторной попыткой устраните первую ошибку, а не только общую ошибку в конце лога.

Перенос сертификатов и профилей Xcode

Для подписи сборки нужны сертификат, соответствующий закрытый ключ и действующий профиль. Копии одного сертификата обычно недостаточно.

Показать шаги
  1. Получите материалы для подписи с закрытым ключом из защищённого командного хранилища и передайте их по зашифрованному каналу. Пароль экспорта передайте другим защищённым способом.
  2. Импортируйте материалы в связку ключей, доступную пользователю сборки, и проверьте срок действия сертификата и наличие соответствующего закрытого ключа. Доступные идентификаторы можно проверить командой security find-identity -v -p codesigning .
  3. Импортируйте профиль, соответствующий приложению, команде и способу распространения. Проверьте Bundle Identifier, срок действия и необходимые возможности.
  4. Проверьте подпись под тем же пользователем и способом запуска, что и у runner. Убедитесь, что автоматическая задача не остановится на запросе разрешений.

Безопасность:Не выводите в логи пароль экспорта, закрытые ключи или файлы подписи целиком. При замене или отзыве материалов обновите настройки сборки. До окончания аренды удалите конфиденциальные данные с машины и сохраните защищённую копию в командном хранилище.

Хранение кеша сборки на дополнительном SSD

+1TB SSD подойдёт для кеша, который можно создать заново, и промежуточных файлов. Перед изменением сценариев сборки проверьте фактический путь подключения диска.

Показать шаги
  1. Выполните df -h и проверьте, где подключён дополнительный SSD и сколько на нём свободного места. Создайте отдельный каталог для проекта, чтобы задачи не использовали один общий кеш с правом записи.
  2. Укажите для Xcode DerivedData отдельный каталог кеша. Разделяйте кеш Unity Library по проекту, версии редактора и состоянию зависимостей.
  3. Храните кеш, Archive и экспортированные пакеты в отдельных каталогах. После передачи результатов через SFTP или командное хранилище удаляйте их согласно правилам хранения.
  4. После перезапуска или повторного подключения проверьте, доступен ли диск. Если путь не найден, задача должна завершиться с ошибкой, а не молча продолжить запись на системный диск.

Как рассчитать место:Отдельно оцените объём рабочих копий, зависимостей, кеша, параллельных задач и результатов сборки. При возврате машины данные дополнительного SSD также удаляются — он не останется доступен как резервный диск после аренды.

Сначала проверьте запуск, затем скорость

Подготовка к инференсу на конфигурации с 24GB

GNU Studio M4: M4 · 24GB RAM · 512GB SSD. Размер файла модели не равен общему объёму памяти, нужному для инференса: на него влияют квантование, длина контекста и число одновременных запросов.

Воспроизводимая среда для инференса MLX

Сначала проверьте загрузку небольшой модели и вывод результата, затем настраивайте длину контекста и параллелизм. Не начинайте с максимальной нагрузки на серверный процесс.

Показать шаги
  1. Убедитесь, что зависимости поддерживают вашу версию macOS, Python и Apple Silicon. Для каждого эксперимента создайте отдельное виртуальное окружение.
  2. Установите нужные проекту зависимости, зафиксируйте их версии и сохраните файл блокировки. Укажите версию модели и формат квантования, чтобы в двух тестах не использовались разные веса.
  3. Загрузите модель с одним коротким запросом. Запишите использование памяти процессом, давление на память и изменение файла подкачки, затем постепенно увеличивайте длину ввода.
  4. Для сравнения результатов используйте одинаковые запросы, длину генерации и условия прогрева. Записывайте отдельно время первой загрузки и последующей генерации.

Готово, если:одна и та же конфигурация позволяет повторно загрузить модель и получить результат. Перед увеличением параллелизма проверьте использование ресурсов — размер файла на диске не показывает, сколько запросов сможет обработать модель.

Планирование места для файлов моделей

Храните веса модели, кеш загрузки, преобразованные копии и результаты экспериментов в разных каталогах. Несколько версий квантования увеличат общий объём данных.

Показать шаги
  1. Перед загрузкой проверьте фактический размер файлов в репозитории модели. Рассчитывайте место как минимум на исходные файлы, результаты квантования или преобразования, временные файлы загрузки и логи.
  2. Храните модели отдельно от среды Python. При использовании дополнительного SSD явно укажите путь к кешу моделей в конфигурации запуска.
  3. Выполните du -sh чтобы проверить размер каталога, а df -h чтобы проверить свободное место на томе. Эти команды показывают разное.
  4. Оставьте место для повторной загрузки и временных файлов преобразования. Перед удалением старой модели убедитесь, что её каталог не используется запущенными задачами.

Важно учитывать:SSD на +1TB или +2TB увеличивает объём хранилища, но не унифицированной памяти. До возврата машины выгрузите конфигурации экспериментов, результаты и нужные веса — не оставляйте единственную копию на экземпляре.

Заранее укажите дату окончания аренды

Продление, смена конфигурации и оплата

Проверяйте платёжный период, дату окончания аренды и статус оплаты в заказе консоли. Экземпляры работают круглосуточно, 365 дней в году; всё же заложите время на резервное копирование и перенос проекта.

Проверьте заказ перед продлением и окончанием аренды

Выберите срок аренды: день, неделя, месяц или квартал. Созданный платёж ещё не означает, что аренда продлена.

Показать шаги
  1. Откройте нужный заказ в консоли, проверьте экземпляр и дату окончания аренды. Убедитесь, что оставшегося срока хватит на выполняемые сборки или эксперименты.
  2. Продлите аренду через консоль, проверив период и сумму. Если для заказа нет доступного действия, отправьте заявку и уточните, как продолжить.
  3. После оплаты проверьте статус заказа и новую дату окончания аренды. Если дата не изменилась, сохраните номер заказа и подтверждение платежа и обратитесь через заявку.
  4. Если планируете завершить аренду, остановите запуск новых задач, выгрузите результаты и настройки, а затем убедитесь, что копии в локальном или командном хранилище открываются.

Важно:Не рассчитывайте на автоматическое продление или фиксированный льготный период после окончания аренды. При возврате машины данные удаляются вместе с дополнительным SSD. Перенесите важные данные до окончания срока аренды.

Смена конфигурации и дополнительные опции

Потребность в памяти и месте на диске оценивайте отдельно. Перед сменой модели спланируйте перенос данных и среды сборки.

Показать шаги
  1. Запишите давление на память, свободное место на диске и признаки сбоев при текущей нагрузке. Большой кеш сам по себе не означает, что нужна конфигурация с большим объёмом памяти.
  2. Чтобы сменить конфигурацию, отправьте через консоль заявку с номером заказа, желаемым вариантом и требованиями к переносу. Сначала уточните порядок действий и стоимость.
  3. Для опций +1TB SSD, +2TB SSD или объединения через Thunderbolt 5 проверьте доступные варианты и стоимость в консоли. Для объединения укажите число машин, используемые программы и способ обмена данными.
  4. После изменения конфигурации заново проверьте подключение диска, права доступа, метки runner и маршрутизацию задач, а затем возобновите работу.

Важно учитывать:Дополнительное хранилище не увеличивает объём памяти. Объединение через Thunderbolt 5 не складывает автоматически память машин и не гарантирует, что любая программа сможет автоматически распределять задачи.

Сравнить цены двух моделей и опций

Оплатите заказ и проверьте статус платежа

Поддерживаются только USDT-TRC20 и карты Visa / Mastercard / Amex через Stripe. Все расчёты — в долларах США (USD).

Показать шаги
  1. Перед оплатой проверьте модель, узел, срок, дополнительные опции и сумму заказа. Доступные способы оплаты определяются ответом платёжного шлюза.
  2. При оплате USDT-TRC20 используйте только сеть, реквизиты и сумму с текущей страницы оплаты. Не отправляйте средства на адреса со старых скриншотов.
  3. При оплате картой пройдите проверку в Stripe, затем вернитесь в консоль и проверьте статус заказа.
  4. Если статус платежа ещё не подтверждён, запишите время оплаты, номер заказа и идентификатор транзакции, затем отправьте заявку. Не платите повторно, пока причина не выяснена.

Подтверждение оплаты:Для платежа в блокчейне укажите хеш транзакции, для оплаты картой приложите квитанцию. Не отправляйте полный номер карты, код безопасности, пароль или закрытый ключ.

Как получить счёт и бухгалтерские документы

Сначала найдите платёж по конкретному заказу, затем укажите, какие документы вам нужны. Так сверить данные проще, чем по одному скриншоту списания.

Показать шаги
  1. Найдите платёж в разделе счетов и заказов консоли. Проверьте сумму, валюту, период и номер заказа.
  2. Сохраните доступный счёт или квитанцию. Если нужны счёт-фактура или дополнительные бухгалтерские документы, укажите их назначение и необходимые реквизиты в заявке через консоль.
  3. Перед отправкой проверьте написание реквизитов получателя. Не прикладывайте к заявке лишние персональные данные.
  4. Команда проверит тип документа, способ его оформления и детали запроса, а затем ответит. Квитанция платёжного шлюза не всегда заменяет документы для бухгалтерии.

По вопросам, не связанным с заказом:напишите на support@gnumac.com. По вопросам оплаты существующего заказа лучше отправить заявку, чтобы сохранить полную историю обращения.

Полный рабочий процесс

Дальше: от инструкций до практики

Краткие инструкции помогут выполнить нужное действие. Практические материалы и технические заметки собраны в блоге — новые публикации появляются в списке статей.

Сохраните данные и проверяйте последовательно

Не удаётся подключиться или мало места на диске? Проверьте три пункта

Сначала выясните, что именно не работает: доступ к сети, аутентификация или приложение. Запишите исходную ошибку, время и уже предпринятые действия, чтобы не менять настройки повторно.

Не удаётся подключиться к общему экрану

Недоступный адрес, отказ в аутентификации и чёрный экран после подключения — разные проблемы. Не перезапускайте экземпляр, пока не выяснили причину.

Показать шаги по устранению неполадок
  1. Заново проверьте в консоли адрес, порт и имя пользователя. Убедитесь, что клиент не использует старые настройки другого экземпляра.
  2. Проверьте, разрешены ли исходящие подключения в вашей локальной сети. При необходимости повторите проверку в другой разрешённой сети, чтобы выяснить, ограничивает ли подключение локальная политика.
  3. Если SSH работает, проверьте настройки общего экрана и список разрешённых пользователей. Если оба способа подключения не работают, запишите ошибки и отправьте заявку.
  4. Если подключение установлено, но изображение отображается неправильно, уменьшите разрешение и качество. Укажите название и версию клиента и приложите скриншот проблемы.

Добавьте к заявке:номер заказа, время ошибки и часовой пояс, клиент, исходный текст ошибки и сведения о подключении по SSH. Закройте на скриншотах данные для доступа.

Тайм-аут SSH или ошибка аутентификации

Тайм-аут часто связан с адресом, портом или сетевым маршрутом. При ошибке аутентификации сначала проверьте имя пользователя, ключ и права доступа.

Показать шаги по устранению неполадок
  1. Подключайтесь по фактическому порту из данных для доступа, а не по умолчанию. Запустите ssh -vv чтобы определить, на каком этапе возникает ошибка: подключение, согласование параметров или аутентификация.
  2. При тайм-ауте проверьте ограничения исходящего трафика в локальной сети и состояние экземпляра. При отказе в подключении проверьте, включена ли служба удалённого входа.
  3. Если появляется ошибка Permission denied , проверьте пользователя, содержимое открытого ключа и права доступа к файлам. Убедитесь, что локально выбран правильный закрытый ключ.
  4. Если отпечаток хоста изменился, сначала проверьте в консоли, переустанавливали ли систему или меняли ли машину. Убедившись в причине, обновите локальную запись — не игнорируйте предупреждение безопасности.

Добавьте к заявке:команду подключения без конфиденциальных данных, последние строки ошибки, время и часовой пояс. Не отправляйте закрытый ключ или пароль.

Предупреждение о нехватке места на диске

Сначала остановите задачи, которые продолжают записывать данные, а затем найдите, что занимает место. Не удаляйте системные каталоги и файлы, которые нужны другим задачам.

Показать шаги по устранению неполадок
  1. Выполните df -h чтобы найти том с нехваткой места. Различайте системный диск и дополнительный SSD — общей ёмкости в Finder недостаточно.
  2. Выполните du -sh чтобы проверить размер каталогов проекта, кеша сборки, загруженных моделей и результатов. Убедитесь, что текущие задачи больше не записывают в них данные.
  3. Сначала перенесите нужные результаты, затем удалите восстанавливаемый кеш и временные файлы неудачных загрузок. Проверьте, что ротация логов работает правильно.
  4. После очистки ещё раз проверьте свободное место, затем запустите одну задачу и проследите за ростом объёма данных. Если места постоянно не хватает, рассмотрите дополнительный SSD, а не удаляйте снова одни и те же необходимые файлы.

Добавьте к заявке:номер заказа, данные об объёме нужного тома, самые большие каталоги и недавние изменения в задачах. Не отправляйте полный список каталогов с конфиденциальными именами файлов.

Перед отправкой заявки подготовьте краткое описание для воспроизведения

  • Данные:номер заказа, экземпляр, узел, время возникновения проблемы и часовой пояс.
  • Проблема:ожидаемый и фактический результат; возникает ли она впервые или при каждом запуске.
  • Материалы:короткие шаги для воспроизведения, логи без конфиденциальных данных и уже выполненные проверки.

По вопросам существующего заказа отправьте заявку через консоль. Если вы выбираете конфигурацию до заказа или не можете войти в аккаунт, напишите на support@gnumac.com. Не отправляйте пароли, закрытые ключи, полные данные банковской карты или материалы для подписи.

Разобравшись с процессом, переходите к аренде.

Выберите модель, узел и срок аренды, подготовьте конфигурацию проекта и путь для резервных копий. По вопросам уже созданного заказа отправьте заявку в консоли.