pimenov.ai
Кейс / Личная Codex-станция

Как один MacBook перестал быть всем и стал частью Codex-станции

Исходная проблема была не в желании купить новую машину. Старый MacBook Air M4 с 16 ГБ памяти стал держать слишком много ролей одновременно: экран, devbox, место проектов, точку запуска Codex, локальные серверы, SSH, VPN и рабочий контекст.

Решением стал не один более мощный ноутбук, а распределённый контур: MacBook Air M5 как мобильный интерфейс, Mac mini M4 Pro как постоянная агентная база, два iPhone как пульты управления и домашняя сеть как понятная инфраструктура вокруг Codex.

MacBook

32 ГБ

Новая мобильная рабочая машина для письма, чтения, интерфейсов, созвонов и быстрых Codex-сессий.

Mac mini

48 ГБ

Постоянный devbox и Codex-host рядом с роутером, NAS, Docker/OrbStack и активными проектами.

Пульты

2 iPhone

Основной iPhone и старый iPhone SE 2 стали мобильными точками управления рабочим контуром.

Личная Codex-станция: MacBook, Mac mini, iPhone, роутер и NAS связаны в домашний рабочий контур

Разделение ролей

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

Главное архитектурное решение: MacBook и Mac mini получили разные роли. Один остаётся удобным человеческим интерфейсом, второй становится постоянной машиной для тяжёлой, долгой и фоновой работы.

MacBook — мобильный фронтенд

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

Mac mini — постоянный host

Он стоит дома, всегда включён, держит проекты, dev tools, Docker/OrbStack, SSH, Screen Sharing, Tailscale и Codex.

iPhone — точка управления

С телефона можно проверить доступность Mac mini, посмотреть статус задачи, продолжить рабочий чат или использовать старый iPhone SE как отдельный экран.

Сеть — не фон, а часть архитектуры

LAN, Tailscale/Headscale, Happ/VLESS, NAS и GitHub стали отдельным слоем, а не набором случайных подключений.

Переезд

Перед переносом нужно было не потерять старую жизнь

Рабочая станция не собирается с чистого листа. Внутри уже есть проекты, грязные ветки, локальные патчи, доступы, конфиги Codex, Keychain, NAS и папки, которые нельзя случайно принять за актуальные.

Инвентаризация перед копированием

Сначала проверяли `~/Code`, remote-репозитории, dirty/ahead-состояния, локальные bundle/patch и то, что восстановится через GitHub.

Migration Assistant как быстрый мост

Новый MacBook Air M5 получил пользователя, приложения и большую часть окружения, но после этого началась настоящая проверка.

Проверка реальной работы

Переезд считался завершённым не после открытия рабочего стола, а когда открывался реальный проект, работали GitHub CLI, SSH, Codex, Linear, Cloudflare и локальные файлы.

Секреты не тащили наугад

Keychain помогал на одном Mac, но не решал задачу переносимых devbox-секретов между MacBook, Mac mini и будущими VPS.

Mac mini

Сначала мышка и клавиатура, потом headless-хост

Mac mini начинался с очень земного вопроса: как пройти первый setup без своей клавиатуры и мышки. Но дальше он получил роль постоянного узла для разработки, Codex и инфраструктурных проверок.

`codex-mini` как отдельная машина

Mac mini получил имя, отдельного пользователя для разработки, Remote Login через SSH и Screen Sharing.

Инструменты разработки на месте

Homebrew, Node, pnpm, uv, cloudflared, jq, rg, Docker/OrbStack и активные проекты собирают его в рабочий devbox.

Проверка после перезагрузки

Важный критерий: Mac mini должен пережить reboot, вернуться в сеть, снова стать доступным по SSH/Screen Sharing и видеть NAS/Copyriot.

Сеть

Удалённый доступ нельзя строить на случайно открытом порту

Домашняя сеть, tailnet, VPN и NAS стали отдельным слоем проекта. Разные маршруты могут конфликтовать, exit node может менять путь в интернет, а LAN и tailnet работают как разные режимы доступа.

LAN — быстрый домашний путь

Когда MacBook, Mac mini и NAS находятся рядом, основной рабочий маршрут не должен гонять данные через лишние внешние контуры.

Tailscale/Headscale — внутренняя сеть устройств

Tailnet даёт управляемый доступ между машинами без сырого port forwarding наружу.

Happ/VLESS — отдельный внешний контур

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

Fallback важнее магии

Если один маршрут капризничает, должна быть карта: где LAN, где tailnet, где VPN, где NAS, где GitHub и где действительно лежит проблема.

Схема домашней сети Codex-станции с MacBook, Mac mini, NAS, роутером, iPhone и внешним облачным маршрутом

Codex-host

Главный смысл Mac mini — постоянство

MacBook открывается, закрывается, уезжает и садится. Mac mini стоит и работает. Это меняет тип задач, которые можно спокойно отдавать машине: длинные проверки, dev servers, Docker workloads, аудиты и фоновую подготовку.

  1. Тяжёлую или долгую задачу можно запускать на Mac mini, не держа ноутбук открытым всю ночь.
  2. Preview-сервер сайта может жить на Mac mini, а смотреть его удобно с MacBook или iPhone.
  3. Инфраструктурные проверки можно выполнять рядом с NAS и домашней сетью, не гоняя данные через ноутбук.
  4. Codex может работать с проектом на том host, где это удобнее: локально, по SSH или через Screen Sharing.

Пульт

Старый iPhone SE перестал быть запасным телефоном и стал рабочим терминалом

Два iPhone в этой схеме не заменяют MacBook. Они дают короткий мобильный доступ к состоянию контура: проверить, жив ли Mac mini, открыть Codex, посмотреть статус задачи или продолжить чат без рабочего стола.

Основной iPhone — повседневная точка управления

Он подходит для быстрых проверок, коротких Codex-сессий и управления, когда не хочется садиться за стол.

iPhone SE 2 — отдельный маленький экран

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

Два iPhone управляют Mac mini как мобильные пульты личной Codex-станции

Границы

Самой взрослой темой оказались не программы, а роли и секреты

Чем больше машин, тем меньше работает привычка хранить всё локально где-то рядом. Нужно понимать, что должно жить на MacBook, что на Mac mini, что восстанавливается через GitHub, а какие доступы вообще не должны попадать на devbox.

Keychain удобен, но не универсален

Он хорош для одного Mac и GUI-приложений, но не становится общей архитектурой секретов для MacBook, Mac mini и будущих VPS.

Следующий трек — SOPS + age + mise

Отдельной задачей стал переносимый стандарт devbox-секретов, где разные машины получают только нужные им доступы.

Серверные доступы не равны devbox-доступам

То, что удобно на постоянной локальной машине, не должно автоматически получать права production-сервера.

Настройка не должна стать ритуалом

Цель — рабочий контур, а не бесконечная полировка локального окружения без реальных задач.

Итог

Работа стала меньше зависеть от одного ноутбука

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

MacBook стал интерфейсом

Он остаётся главным человеческим местом работы, но больше не обязан держать всё на себе.

Mac mini стал агентной базой

Постоянная машина держит проекты, dev servers, Codex, Docker/OrbStack, проверки и фоновую подготовку.

iPhone стал быстрым входом

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

Дальше можно развивать систему пакетами

Следующие шаги уже понятны: проекты, секреты, automation, аудиты, dev servers, NAS и VPS.

Источник

Полная история описана в статье про личную Codex-станцию

В статье разобраны причины апгрейда, переезд на новый MacBook, настройка Mac mini, сеть, два iPhone как пульты, сложности с ролями и секретами, а также сценарии, которые открывает постоянный Codex-host.