---
title: "Окружения"
id: "348"
type: "page"
slug: "environments"
published_at: "2026-05-19T11:30:47+00:00"
modified_at: "2026-06-13T00:52:52+00:00"
url: "https://pastukhov.com/code/docs/environments"
markdown_url: "https://pastukhov.com/code/docs/environments.md"
excerpt: "Pastukhov Code использует два типа переменных окружения, которые служат различным целям: Эти переменные настраивают сам…"
---

# Окружения

[https://pastukhov.com/code/docs/environments.md](https://pastukhov.com/code/docs/environments.md)

Pastukhov Code использует два типа переменных окружения, которые служат различным целям:

- **Переменные уровня приложения** — настраивают сам Pastukhov Code (учетные данные для входа, путь к проекту, лицензия, ключи API для аутентификации). Они должны быть установлены до запуска приложения — через системные переменные окружения, аргументы CLI или файлы `.env` — и не могут быть изменены через страницу “Окружения”.
- **Переменные уровня Claude Code** — настраивают ИИ-модель и управляются полностью через страницу **Окружения**. Каждое окружение — это именованный набор переменных (ключи API, названия моделей, базовые URL-адреса, цены), который передается процессу CLI Claude Code. Вы можете создать несколько окружений и переключаться между ними в любое время.

## Переменные окружения уровня приложения

Эти переменные настраивают сам Pastukhov Code и должны быть установлены до запуска приложения. Они не могут управляться через страницу “Окружения” — используйте системные переменные окружения, аргументы CLI (`KEY=VALUE`) или файл `.env` (загружаемый через `--env filename`).

### Основные настройки

- `PASTUKHOV_CODE_LOGIN` — Имя пользователя для входа. Автоматически генерируется как `code`, если не задано.
- `PASTUKHOV_CODE_PASSWORD` — Пароль в виде хеша SHA256. Автоматически генерируется, если не задано, и выводится в консоль (временно до перезапуска). Вы можете сгенерировать хеш с помощью встроенного генератора SHA256 на странице входа — нажмите ссылку *“▸ SHA256 generator”* под кнопкой входа.
- `PASTUKHOV_CODE_PROJECT_PATH` — Путь к каталогу проекта. Требуется для ручной установки и Docker. Папка может быть пустой или не существовать — в этом случае приложение автоматически проверяет проект из настроенного Git URL.
- `PASTUKHOV_CODE_LICENSE` — Ключ лицензии. Используется пробная лицензия, если не задано.
- `PASTUKHOV_CODE_API_KEY` — Хеш SHA256 ключа API для удаленного API. Отключено, если не задано.
- `PASTUKHOV_CODE_DATABASE` — Пользовательский путь к базе данных или строка подключения PostgreSQL. По умолчанию `.pastukhov/project.db` (SQLite), хранится относительно папки проекта, чтобы вы могли закоммитить его в репозиторий. Дляproduction использования рекомендуется база данных PostgreSQL — она быстрее и надежнее SQLite.
- `JWT_SECRET_KEY` — Пользовательский ключ подписи JWT (минимум 32 символа). Автоматически генерируется, если не задано. Этот ключ не должен быть легко угадываем — любой, кто знает его, может генерировать действительные токены аутентификации. Если вы не предоставите свой ключ, он будет перегенерирован при пересоздании контейнера Docker, что потребует всем пользователям повторного входа.
- `PASTUKHOV_CODE_CLICKHOUSE_URL` — Строка подключения ClickHouse для отправки статистики чатов в централизованное хранилище для визуализации и мониторинга. Позволяет создавать дашборды Grafana или пользовательские графики вашей продуктивности по всем проектам сразу, а не просматривать каждый проект изолированно. Пример: `Host=172.17.0.1;Port=8127;Protocol=http;Database=;Username=;Password=`

### Интеграция с Git

- `PASTUKHOV_CODE_PROJECT_GIT_URL` — Git URL для клонирования репозитория проекта. По умолчанию репозиторий демо-проекта.
- `PASTUKHOV_CODE_PROJECT_GIT_LOGIN` — Логин Git для репозитория проекта.
- `PASTUKHOV_CODE_PROJECT_GIT_PASSWORD` — Пароль Git для репозитория проекта.
- `PASTUKHOV_CODE_SKILLS_GIT_URL` — Git URL для клонирования репозитория навыков. По умолчанию репозиторий демо-навыков.
- `PASTUKHOV_CODE_SKILLS_GIT_LOGIN` — Логин Git для репозитория навыков.
- `PASTUKHOV_CODE_SKILLS_GIT_PASSWORD` — Пароль Git для репозитория навыков.
- `PASTUKHOV_CODE_GIT_USER_NAME` — Имя пользователя Git, используемое для коммитов.
- `PASTUKHOV_CODE_GIT_USER_EMAIL` — Email пользователя Git, используемый для коммитов.

### Разное

- `PASTUKHOV_CODE_CLAUDE_PATH` — Пользовательский путь к исполняемому файлу CLI Claude Code.
- `PASTUKHOV_CODE_ICON_PATH` — Путь к пользовательскому значку, отображаемому в интерфейсе.
- `DISABLE_AUTOUPDATER` — Установите в `1`, чтобы отключить автообновление Claude Code (часто используется в Docker).
- `DOTNET_ROOT` — Путь к среде выполнения .NET (используется системой сборки).
- `DEV_BASE_PATH` — Базовый путь для конфигурации dev proxy.

## Переменные уровня Claude Code

Эти переменные настраивают ИИ-модель и управляются через страницу “Окружения”. Они хранятся в `.pastukhov/environments.yml` и передаются напрямую процессу CLI Claude Code при запуске сессии чата. Переменные окружения переопределяют системные переменные, а системные переменные служат резервными.

 ![Раздел переменных уровня Claude Code на странице окружений](https://pastukhov.com/wp-content/uploads/2026/06/environments-claude-code-level-variables.png) ### Аутентификация & API

- `ANTHROPIC_API_KEY` — Ключ API Anthropic. Используется прямым API Anthropic.
- `ANTHROPIC_AUTH_TOKEN` — Токен аутентификации для сторонних поставщиков (z.ai, OpenRouter, xAI, MiniMax, Kimi). Альтернатива `ANTHROPIC_API_KEY`.
- `ANTHROPIC_BASE_URL` — Базовый URL API. По умолчанию endpoint Anthropic; переопределяется для сторонних поставщиков.
- `MAX_MCP_OUTPUT_TOKENS` — Максимум токенов для вывода MCP-сервера. По умолчанию: `100000`.

### Конфигурация модели

- `ANTHROPIC_MODEL` — Название основной модели, используемой для ответов чата.
- `ANTHROPIC_DEFAULT_OPUS_MODEL` — Модель, используемая для сложных подзадач, требующих наивысших возможностей.
- `ANTHROPIC_DEFAULT_SONNET_MODEL` — Модель, используемая для сбалансированных подзадач (скорость против интеллекта).
- `ANTHROPIC_DEFAULT_HAIKU_MODEL` — Модель, используемая для быстрых, легких подзадач.
- `CLAUDE_CODE_SUBAGENT_MODEL` — Модель, используемая для операций субагента Claude Code (разветвленные агенты).
- `MODEL_CONTEXT_LENGTH` — Размер контекстного окна в токенах. Используется для расчета стоимости и отображения.

### Цены (за миллион токенов)

- `MODEL_INPUT_PRICE` — Цена входного токена.
- `MODEL_OUTPUT_PRICE` — Цена выходного токена.
- `MODEL_CACHE_READ_PRICE` — Цена токена чтения кеша.
- `MODEL_CACHE_WRITE_PRICE` — Цена токена записи кеша.

### Управление поведением

- `CLAUDE_DISABLE_EXPERIMENTAL_BETAS` — Установите в `true`, чтобы отключить экспериментальные бета-функции (рекомендуется для сторонних поставщиков).
- `DISABLE_NON_ESSENTIAL_MODEL_CALLS` — Установите в `true`, чтобы отключить несущественные вызовы API модели (рекомендуется для сторонних поставщиков).
- `ENABLE_TOOL_SEARCH` — Установите в `false`, чтобы отключить поиск инструментов (используется некоторыми поставщиками, которые не поддерживают его).

**Примечание:** При создании окружения из встроенного поставщика (Anthropic, z.ai, OpenRouter и т. д.) большинство переменных предварительно настраивается автоматически. Вам нужно только предоставить свой ключ API — шаблон поставщика заполняет названия моделей, базовый URL, цены и флаги поведения. См. раздел [Настройка первого окружения](/code/docs/getting-started#setting-up-your-first-environment)
 в руководстве “Начало работы”.

## Что такое окружения?

Окружение — это именованная коллекция переменных уровня Claude Code, которые ИИ использует при ответе на ваши сообщения. Вместо жесткого кодирования одного ключа API или названия модели вы можете создать несколько окружений и переключаться между ними на лету.

Например, вы можете создать:

- **Claude** — настроен с ключом API Anthropic и моделью Claude
- **GPT-4** — настроен с ключом API OpenRouter и GPT-4
- **GLM** — настроен с ключом API z.ai и моделью GLM
- **Testing** — более дешевая или быстрая модель для экспериментов

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

**Иерархическое наследование:** Названия окружений поддерживают наследование на основе сегментов, разделенных дефисами. Например, окружение с именем `glm-5-turbo` автоматически наследует переменные из `glm-5` и `glm`. Это позволяет определить общие настройки (например, ключ API и базовый URL) в родительском окружении и переопределить только то, что отличается в дочерних окружениях (например, название модели или цены). Дочерние переменные всегда имеют приоритет над родительскими переменными.

## Просмотр окружений

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

 ![Пункт меню Окружения и список окружений](https://pastukhov.com/wp-content/uploads/2026/06/environments-viewing-environments.png) ## Страница подробностей окружения

Когда вы нажимаете на окружение, открывается его страница подробностей, отображающая все переменные в виде пар “ключ-значение”. Здесь вы настраиваете и точно настраиваете каждое окружение.

 ![Страница подробностей окружения, отображающая пары ключ-значение](https://pastukhov.com/wp-content/uploads/2026/06/environments-detail-page.png) **Редактирование переменной:** Нажмите на поле значения и введите новое значение. Изменения сохраняются автоматически после короткой задержки — не нужно нажимать кнопку сохранения.

**Добавление переменной:** Нажмите “Add Variable”, чтобы создать новую пару “ключ-значение”. Введите имя переменной и ее значение.

**Добавление ссылочной переменной:** Нажмите “Add Reference Variable”, чтобы создать переменную, значение которой ссылается на другую переменную. Это полезно для поддержания организации вашей конфигурации (см. раздел [Подстановка переменных](#variable-substitution)
 ниже).

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

**Контекстное меню:** Щелкните правой кнопкой мыши по переменной для дополнительных опций, таких как редактирование, удаление или копирование.

## Подстановка переменных

Переменные могут ссылаться на другие переменные, используя синтаксис `$VARIABLE_NAME`. При использовании окружения ссылки автоматически разрешаются в их фактические значения.

Например, вы можете настроить свои переменные так:

- `API_KEY` = `sk-abc123...` (ваш фактический ключ API)
- `BASE_URL` = `https://api.example.com`
- `FULL_ENDPOINT` = `$BASE_URL/v1/chat` (ссылается на BASE_URL)

Этот подход поддерживает вашу конфигурацию чистой и поддерживаемой. Измените базовый URL один раз, и каждая переменная, которая ссылается на него, обновляется автоматически. Установите свой ключ API в одном месте и ссылайтесь на него по всей конфигурации.

**Совет по безопасности:** Синтаксис `$VARIABLE_NAME` также работает с системными переменными окружения. Это означает, что вы можете предоставить конфиденциальные значения (ключи API, ключи лицензии, пароли) через переменные окружения Docker, системные переменные окружения или аргументы CLI и ссылаться на них в `environments.yml`, не фиксируя никаких секретов в репозитории:

```
# .pastukhov/environments.yml — безопасно для коммита
environments:
  production:
    variables:
      - ANTHROPIC_API_KEY=$MY_API_KEY          # разрешается из системного env во время выполнения
      - ANTHROPIC_AUTH_TOKEN=$MY_AUTH_TOKEN     # не зафиксировано в git
      - ANTHROPIC_BASE_URL=https://api.anthropic.com  # не чувствительно, можно коммитить
```

Таким образом фактические секретные значения остаются в вашей конфигурации Docker (файл compose, файл `.env` или флаги `-e`), а `environments.yml` остается безопасным для коммита и совместного использования.

## Создание нового окружения

### Чтобы создать новое окружение:

 ![Диалог нового окружения для создания окружения](https://pastukhov.com/wp-content/uploads/2026/06/environments-new-environment.png) 1. Перейдите на страницу Окружения из главного меню
2. Нажмите “New Environment” или используйте контекстное меню
3. Введите имя для окружения (например: “Claude” или “GPT-4”)
4. Добавьте необходимые переменные для вашего поставщика ИИ (обычно ключ API, название модели и базовый URL)
5. Добавьте любые дополнительные переменные, необходимые вашему проекту
6. Окружение готово к использованию — переключитесь на него из поля ввода чата

## Переименование окружения

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

## Переключение окружений в чате

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

 ![Селектор окружений в элементе управления вводом сообщений](https://pastukhov.com/wp-content/uploads/2026/06/environments-switching-environments-chat.png) 1. Найдите выпадающий селектор окружений рядом с полем ввода чата
2. Нажмите на него, чтобы увидеть список доступных окружений
3. Выберите окружение, которое хотите использовать
4. Все последующие сообщения будут использовать конфигурацию выбранного окружения

Переключение происходит мгновенно — вам не нужно начинать новую сессию чата или обновлять страницу. ИИ начнет использовать новую модель и настройки немедленно для вашего следующего сообщения. См. раздел [Чат](/code/docs/chat)
 для получения более подробной информации об области ввода чата.

**[← Навыки](/code/docs/skills)**

**[Доски →](/code/docs/boards)**
