Codex на ноутбуке работает ровно до тех пор, пока задача не становится длиннее, чем открыта крышка. Большой рефакторинг, ночное ревью или тесты, которые идут час, требуют машины, которая не выключается, держит чистый checkout и не зависит от того, к какому Wi-Fi вы подключены.
Обычно такая машина — небольшой VPS. В этом руководстве — настройка, которую мы бы сделали руками на свежем сервере с Ubuntu 24.04: подобрать размер, закрыть доступ, установить Codex CLI, войти без браузера, сохранить сессии живыми и подключаться, не открывая SSH в интернет.
Что нужно Codex от VPS
Модель работает на стороне OpenAI, поэтому Codex CLI на VPS — это в основном терминальный клиент плюс всё, что делает ваш репозиторий: установки, сборки, тесты. В документации по установке OpenAI указаны Ubuntu 20.04+ или Debian 10+ для Linux, минимум 4 ГБ RAM и рекомендуемые 8 ГБ, а также Git 2.23+ — необязательно, но желательно.
Это совпадает с тем, что мы используем для своих агентов:
| Минимум | Рекомендуем | Зачем | |
|---|---|---|---|
| CPU | 2 vCPU | 4 vCPU | Ваши сборки и тесты, а не модель |
| RAM | 4 ГБ | 8 ГБ | Рекомендация самой OpenAI для CLI |
| Диск | 50 ГБ | 150 ГБ | Репозитории, node_modules, кэши сборки, логи |
| ОС | Ubuntu 24.04 | Ubuntu 24.04 | Актуальный LTS, поддерживается Codex и Tailscale |
Одна нагрузка Codex на один VPS — скучный и безопасный выбор. Если задача пойдёт не так, пострадает одна маленькая машина, которую можно стереть и собрать заново.
Запустите первого агента примерно за 3 минуты
Установите CLI Office Claws, подключите аккаунт Contabo и подписку Codex — агент получит собственный VPS и рабочее место в офисе.
curl -fsSL https://officeclaws.com/downloads/install.sh | sh$4.99/мес + ваш собственный VPS в Contabo · ключи остаются в вашей связке ключей
Шаг 1: создать пользователя без root
Свежие образы VPS обычно выдают root. Не запускайте от root агента, который правит файлы и выполняет команды. Создайте отдельного пользователя и скопируйте ему свой SSH-ключ:
# as root, once
adduser codex
usermod -aG sudo codex
mkdir -p /home/codex/.ssh
cp ~/.ssh/authorized_keys /home/codex/.ssh/
chown -R codex:codex /home/codex/.ssh
chmod 700 /home/codex/.ssh
chmod 600 /home/codex/.ssh/authorized_keysЗайдите под codex из второго терминала, прежде чем закрывать root-сессию. Всё дальнейшее выполняется от этого пользователя.
Шаг 2: установить Codex CLI
OpenAI выпускает отдельный установщик для macOS и Linux, поэтому Node.js на сервере не нужен. Поставьте базовые пакеты, затем Codex:
sudo apt update && sudo apt install -y git tmux curl
curl -fsSL https://chatgpt.com/codex/install.sh | sh
codex --versionЕсли вы и так держите Node на сервере, npm install -g @openai/codex — второй официальный способ. Оба описаны в README openai/codex и в документации Codex CLI.
Шаг 3: войти — подписка ChatGPT или API-ключ
При первом запуске codex предлагает Sign in with ChatGPT. На ноутбуке это открывает браузер. На VPS браузера нет, поэтому в документации по аутентификации OpenAI есть три варианта.
Код устройства (лучший вариант для серверов без экрана). Функция в бете, и сначала её нужно включить в настройках безопасности ChatGPT:
codex login --device-authПроброс порта по SSH. Callback входа слушает localhost:1455. Пробросьте этот порт с ноутбука и откройте выведенный адрес в локальном браузере:
# on your laptop
ssh -L 1455:localhost:1455 codex@your-vps
# then, inside that SSH session
codex loginAPI-ключ. Передайте его через pipe, а не вставляйте в историю shell:
printenv OPENAI_API_KEY | codex login --with-api-keyВыбор — в основном вопрос оплаты. Codex входит в планы ChatGPT Free, Go, Plus, Pro, Business, Edu и Enterprise, а лимиты использования зависят от плана. API-ключ же оплачивается за токены по тарифам API. Расчёты — в статье Подписка Codex или API: что дешевле.
Что бы вы ни выбрали, Codex кэширует учётные данные в ~/.codex/auth.json (или в хранилище учётных данных ОС). OpenAI советует обращаться с этим файлом как с паролем: не коммитить, не вставлять в тикеты и не пересылать в чатах.
Шаг 4: сохранять сессии живыми с tmux и systemd
SSH-сессия умирает, когда ноутбук засыпает, а вместе с ней — всё, что в ней делал Codex. Для интерактивной работы запускайте Codex внутри tmux:
tmux new -s codex
cd ~/work/project
codex
# detach with Ctrl-b then d; later, from any machine:
tmux attach -t codexДля регулярных задач терминал вообще не нужен. codex exec работает неинтерактивно, печатает итоговый ответ в stdout и по умолчанию запускается в песочнице только для чтения, так что правки нужно явно разрешить флагом --sandbox workspace-write (документация по неинтерактивному режиму). Таймер systemd превращает это в ночную задачу:
# /etc/systemd/system/codex-nightly.service
[Unit]
Description=Nightly Codex review
[Service]
Type=oneshot
User=codex
WorkingDirectory=/home/codex/work/project
ExecStart=/bin/bash -lc 'codex exec --sandbox workspace-write "review the last day of commits and write findings to REVIEW.md"'
# /etc/systemd/system/codex-nightly.timer
[Timer]
OnCalendar=*-*-* 03:00
Persistent=true
[Install]
WantedBy=timers.targetsudo systemctl daemon-reload
sudo systemctl enable --now codex-nightly.timerПодробнее об обоих подходах — в статьях Долгие задачи Codex и Фоновые задачи в Codex CLI.
Шаг 5: безопасный доступ к VPS
VPS с открытым в мир портом 22 получает попытки перебора паролей в течение минут. VPS, на диске которого лежат агент и ваши учётные данные Codex, — особенно плохое место для ошибки.
Мы делаем три вещи:
-
Только ключи. В
/etc/ssh/sshd_configукажитеPasswordAuthentication noиPermitRootLogin no, затем выполнитеsudo systemctl restart ssh. -
Подключиться к приватной сети. Установите Tailscale и подключите сервер к своему tailnet:
curl -fsSL https://tailscale.com/install.sh | sh sudo tailscale up -
Закрыть публичный порт. Когда вы уже можете зайти по SSH через Tailscale-IP сервера, разрешите входящий трафик только на интерфейсе Tailscale:
sudo ufw allow in on tailscale0 sudo ufw enable
Шаг 3 делайте из сессии, которая уже идёт через tailnet, иначе закроете дверь перед собой. Веб-консоль провайдера остаётся аварийным входом. Повседневную работу по SSH после этого мы описали в статье Удалённый Codex по SSH.
Шаг 6: обновлять Codex
Codex обновляется часто. Документированный способ обновить отдельную установку — запустить установщик ещё раз; если ставили через npm — переустановить пакет:
curl -fsSL https://chatgpt.com/codex/install.sh | sh
# or, if you used npm
npm install -g @openai/codexОбновляйте и систему: sudo apt update && sudo apt upgrade по расписанию или включите unattended-upgrades для патчей безопасности.
Сколько это стоит
| Статья расходов | Сколько платите | Комментарий |
|---|---|---|
| VPS | Месячная цена вашего провайдера | Начальных планов с 4 vCPU / 8 ГБ хватает на одного агента |
| Codex по подписке ChatGPT | Ваш текущий план | Лимиты зависят от плана |
| Codex по API-ключу | Оплата API за токены | Предсказуемо, только если ограничить расход |
| Tailscale | Бесплатно для личного использования | Плана Personal достаточно |
Для большинства подписка ChatGPT — более дешёвый способ держать одного агента на VPS, а API-ключи оправданы для CI и автоматизации с пиковой нагрузкой. Если нужно несколько агентов параллельно, читайте Как запустить несколько агентов Codex.
Или пусть эти шаги сделает Office Claws
Всё, что описано выше, Office Claws автоматизирует. Вы приносите свежий VPS с Ubuntu 24.04 в своём аккаунте Contabo и auth-ключ Tailscale, затем запускаете:
officeclaws onboard --name Mona
officeclaws connect-codexonboard добавляет отдельный SSH-ключ, создаёт отдельного пользователя, включает файрвол, защиту от перебора паролей и автоматические обновления безопасности, отключает вход по паролю и под root, подключает сервер к вашему tailnet, закрывает публичный SSH и запускает агента. Обычно это занимает 5–10 минут. connect-codex подключает агента к вашей подписке ChatGPT через официальный вход OpenAI — без API-ключа и без оплаты за токены.
Честно о компромиссе: вы получаете агента, с которым общаетесь из CLI или Telegram и которому можно ставить задачи по расписанию, а не «голый» терминал Codex, который вы автоматизируете сами. Office Claws стоит $4.99 в месяц; VPS оплачивается напрямую Contabo. Полная инструкция — в быстром старте.
Рекомендации
Начните с одного VPS, одного пользователя и одной сессии Codex в tmux. Добейтесь, чтобы вход по коду устройства работал, закройте публичный порт SSH и только потом добавляйте таймеры или второго агента. Если не хочется возиться с настройкой, доверьте её Office Claws и потратьте время на саму задачу.
Читайте также:
- Удалённый Codex по SSH — повседневная работа по SSH, когда VPS уже запущен
- Долгие задачи Codex — почему постоянные сессии важны, когда работа длится часами
- Фоновые задачи в Codex CLI — запуск Codex без подключённого терминала
- Как запустить несколько агентов Codex — от одного VPS к небольшой команде
- Подписка Codex или API: что дешевле — какой счёт за Codex разумен для агента на VPS