SpyBara
Go Premium

self-hosted-environments-quickstart.md 2026-10-09 23:02 UTC to 2026-10-10 02:58 UTC

This page contains 47 additions and 9 deletions.

2026
Sun 4 23:58 Sat 10 03:59

Быстрый старт для самостоятельно размещаемых окружений

Настройте своё первое самостоятельно размещаемое окружение: установите Claude Code, создайте окружение, запустите runner и маршрутизируйте сеанс на него.

Самостоятельно размещаемое окружение запускает облачные сеансы Claude Code на инфраструктуре, которой управляет ваша организация, выполняемые процессами runner, которые вы развёртываете. Этот быстрый старт настраивает ваше первое окружение, самое маленькое из работающих: один runner на одном хосте, запускающий один тестовый сеанс. Есть два шага: создайте окружение, запустите runner и маршрутизируйте сеанс на него, затем отправьте сообщение этому сеансу из вашего терминала. Вы будете переключаться между двумя интерфейсами: claude.ai для создания окружения, проверки его статуса и маршрутизации сеанса, и терминалом на хосте для всего, что делает runner.

К концу у вас будет окружение на странице администратора Cloud environments, runner, опрашивающий работу, и сеанс, работающий на вашем хосте. Прежде чем подключать реальные репозитории или внутренние системы, пройдите Развёртывание в production, которое охватывает позицию безопасности, контроль исходящего трафика, учётные данные git и оркестрацию.

Предварительные требования

Организация и роли

Для claude.ai требуется:

  • Allow self-hosted environments включено Владельцем на странице администратора Cloud environments; кнопка New не появляется, пока это не будет сделано. Если у вас нет этой роли, кто-то, кто её имеет, может создать окружение и передать вам его секрет; шаги runner и terminal на этой странице не требуют роли claude.ai, и там, где шаг проверяет статус в интерфейсе администратора, собственные строки логов runner дают вам тот же сигнал.
  • Подключение GitHub для вашей организации, чтобы разработчики могли выбирать репозитории при запуске сеансов.

Хост и сеть

Хост runner требует:

  • Хост или контейнер Linux или macOS с исходящим HTTPS к api.anthropic.com, к claude.ai и хостам загрузки, на которые он перенаправляет для шага установки ниже, и к вашему git-хосту для клонирования; таблица требований к сети содержит полный список. Windows не поддерживается в качестве хоста runner; запустите runner в контейнере Linux вместо этого. Рабочие станции разработчиков не затронуты, так как сеансы запускаются из claude.ai в браузере.
  • Репозиторий для тестовой сессии: публичный или такой, который этот хост уже может клонировать по его HTTPS URL без запроса учётных данных.
  • Часы, синхронизированные с реальным временем, например с помощью NTP. Аутентификация не удаётся, когда часы отстают или спешат более чем на пять минут; см. Troubleshooting.

Программное обеспечение на хосте runner

Установите на хост перед началом:

  • Claude Code v2.1.224 или позже, с любым из стандартных методов установки. Runner является частью стандартного бинарного файла claude, и более ранние версии не распознают подкоманду self-hosted-runner. Канал latest встроенного установщика содержит каждый выпуск сразу после его публикации; канал stable, cask Homebrew claude-code и стабильные репозитории apt, dnf и apk отстают примерно на неделю. Чтобы зафиксировать точную версию, которую запускает ваш парк, см. Install a specific version. Для образов контейнеров см. Dockerfile в Deploy to production.
  • Git 2.24 или новее. Некоторые опции git на странице развёртывания требуют более новых версий; Configure git указывает каждый минимум.

Подтвердите, что хост готов:

claude self-hosted-runner --help

Готовый хост выводит текст использования runner, перечисляя флаги такие как --environment-secret-file. На версиях старше 2.1.224 команда выводит вместо этого общий вывод claude --help; обновитесь с помощью claude update или переустановите из канала latest.

Настройка окружения и runner

Используйте либо пошаговую настройку, либо ручные шаги. Пошаговая настройка — это одна команда, которая запускает интерактивную сессию Claude Code и проводит вас через остальные действия. Используйте вместо неё ручные шаги на хосте, где интерактивная сессия невозможна. Также используйте их, если окружение создал пользователь с ролью Owner и передал вам его секрет, поскольку для пошаговой настройки требуется вход с ролью Owner.

Запуск пошаговой настройки

Пошаговая настройка проводит вас через создание окружения в админ-интерфейсе, запускает локальный runner с файлом секрета, который вы сохраняете, подтверждает, что runner регистрируется, и записывает шпаргалку в ./runner-setup/CHEAT-SHEET.md. Перед запуском проверьте вход и версию:

  • Вход: запускайте её на машине, где вы вошли с помощью claude auth login, используя учётную запись с ролью Owner. Если используется только API-ключ или сторонний поставщик моделей, сессия запустится, но проверки организации завершатся неудачей.
  • Версия: убедитесь, что проверка версии пройдена. На версиях старше 2.1.224 команда setup запускает сессию Claude с этими словами в качестве промпта вместо пошаговой настройки.

Чтобы запустить пошаговую настройку, выполните подкоманду setup в оболочке и следуйте инструкциям:

claude self-hosted-runner setup

Пошаговая настройка сама не запускает тестовую сессию: она предлагает вам запустить её на claude.ai/code. Последний шаг настройки останавливает запущенный ею runner. Если вы выйдете из настройки до этого шага, runner продолжит работать. Чтобы продолжить после последнего шага, снова запустите runner в оболочке с помощью команды из ./runner-setup/CHEAT-SHEET.md, затем направьте сессию в окружение.

Ручная настройка

Создайте окружение на claude.ai, запустите runner из терминала на хосте, затем вернитесь на claude.ai, чтобы убедиться, что runner появился, и направить на него сессию. Если пользователь с ролью Owner уже создал окружение и передал вам его секрет, начните с шага 2.

1

Создайте окружение

Перейдите на страницу Cloud environments в параметрах администратора. В разделе Self-hosted environments выберите New, назовите окружение и выберите Create. На втором шаге мастера выберите Copy environment key, чтобы скопировать секрет окружения, который админ-интерфейс обозначает как ключ окружения. claude.ai показывает секрет один раз, и вы не можете получить его позже; он истекает через 365 дней после создания. ID окружения ccpool_... остаётся видимым в его диалоговом окне деталей; вам понадобится он для проверки aud в проверке токена и для отправки тестовых сеансов из CI.

Если вы потеряли секрет или вам нужно его ротировать, создайте новый секрет на вкладке Configuration окружения, разверните новый секрет на ваших runners, затем отзовите старый. Runners с отозванным секретом не пройдут следующий аутентифицированный опрос и завершатся, записав в лог poll auth failed, а ваш оркестратор перезапустит их с новым секретом.

2

Запустите runner

Создайте директорию для секрета. Эта и следующая команды используют /etc/claude, что требует root, а создаваемый ими файл секрета доступен для чтения только пользователю, который их выполнил. Если runner будет работать от имени другого пользователя, он завершится с ошибкой error: Failed to read environment secret file <path> (EACCES: permission denied, open '<path>'). В этом случае выполните обе команды от имени пользователя runner, указав вместо /etc/claude директорию, в которую этот пользователь может записывать, и передайте тот же путь в --environment-secret-file. Подойдёт любой путь, который процесс runner может читать.

mkdir -p /etc/claude

Запишите секрет окружения в файл. Команда ниже читает из вашего терминала, поэтому секрет остаётся вне истории shell: вставьте значение, которое вы скопировали, нажмите Enter, затем Ctrl-D, и umask подоболочки делает файл читаемым только его владельцем.

(umask 077 && cat > /etc/claude/environment-secret)

Выберите базовую директорию, заменив <writable-dir> в команде runner ниже абсолютным путём, который runner может писать или создавать. Runner создаёт директорию при запуске, затем проверяет репозитории и создаёт директории для каждого сеанса под ней. Без --base-dir он использует /workspace, что работает только если эта директория уже существует и доступна для записи или вы запускаете runner как root.

Если runner не может создать или писать в путь, он выходит при запуске с ошибкой, называющей директорию вместо регистрации. См. Troubleshooting.

Затем запустите runner с --environment-secret-file и --base-dir:

claude self-hosted-runner --environment-secret-file '/etc/claude/environment-secret' --base-dir '<writable-dir>'

После регистрации в вашем окружении runner записывает в лог Registered: runner_id=<runner-id>, а затем начинает опрашивать наличие работы. Если runner позже завершится, перезапустите его вручную. О том, когда это происходит, см. Если runner завершился.

3

Проверьте, что runner появился

Вернитесь на страницу Cloud environments. Статус вашего окружения изменится с No runners deployed на Healthy в течение нескольких секунд после запуска runner; откройте окружение и выберите Activity, чтобы увидеть сам runner. Если у вас нет доступа к странице администратора, тот же сигнал даёт строка Registered: runner_id=<runner-id> в логе runner из предыдущего шага.

4

Направьте сессию в окружение

Запустите сессию на claude.ai/code и выберите ваше окружение в средстве выбора окружения, где самостоятельно размещаемые окружения отображаются рядом с размещаемыми Anthropic. В качестве репозитория выберите указанный в предварительных требованиях: публичный репозиторий или тот, который этот хост уже может клонировать. Runner клонирует с теми учётными данными git, которые уже есть на хосте.

Следующий доступный runner подхватывает поставленную в очередь сессию и записывает в лог Picked up session <session-id> вместе с числом активных сессий и ёмкостью, поэтому по собственному выводу runner можно определить, какой хост взял сессию. Наблюдайте за работой сессии и читайте ответы Claude на claude.ai/code.

Если сессия не начинает работу, сопоставьте то, что вы видите:

  • Сессия остаётся в очереди: см. Устранение неполадок.
  • Сессия не запускается из-за ошибки git: ошибка отображается в сессии и в логе runner. Если она содержит could not read Username for из git, за которым следует URL вашего git-хоста, у runner не было учётных данных HTTPS для этого хоста. См. Configure git, где также описаны варианты учётных данных для приватных репозиториев в production.

Если runner завершился

Если runner завершится во время этого быстрого старта, запустите его снова той же командой. Runner может завершиться самостоятельно:

  • Сессии завершены: в логе отображается [runner:exit] account workload drained — exiting. Runner по задумке завершается после окончания его активных сессий. См. Runner lifecycle.
  • Потеряна связь: в логе отображается строка [runner:fatal] с runner record gone server-side или с poll auth failed. Если runner на некоторое время теряет связь с Anthropic, например потому что хост перешёл в спящий режим, он может завершиться при следующем обращении к Anthropic.

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

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

Отправьте follow-up сообщение работающему сеансу

Когда сеанс работает на вашем окружении, отправьте ему follow-up из CLI claude на любой машине, где вы вошли с помощью claude auth login; команда не должна запускаться с машины, которая запустила сеанс. Команда отправляет одно сообщение:

claude -p "your message" --cloud <session-id>

Для <session-id> передайте голый ID session_... или cse_... или URL сессии claude.ai/code. Успешная отправка выводит Sent to cloud session. с ID сессии и ссылкой для просмотра. Допустимые формы ID, вывод JSON, а также требования к учётной записи и политикам описаны в разделе Отправка follow-up сообщений из CLI, так как команда работает одинаково и с сессиями, размещёнными Anthropic.

Что дальше

  • Развёртывание в production: укрепите развёртывание, контролируйте исходящий трафик, настройте учётные данные git и запустите флот под Kubernetes или Compose
  • Customize sessions: скрипты-обёртки, хуки жизненного цикла, runners по требованию, MCP серверы и разрешения
  • Test end to end: CI smoke тест, который отправляет сеанс и читает ответы Claude