> ## Documentation Index
> Fetch the complete documentation index at: https://docs.axottle.com/llms.txt
> Use this file to discover all available pages before exploring further.

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

> Полный справочник переменных окружения AXOTTLE_* панели, CLI и скрипта обновления.

Эталонная таблица всех переменных окружения Axottle. Как и куда их прописывать — на странице [Конфигурация панели](/ru/reference/configuration).

<Info>Для кого: администратор, SRE. Требуемые права: root (или sudo) на сервере панели для правки `/etc/axottle/axottle.env`.</Info>

<Warning>
  Горячей перезагрузки нет: панель читает конфигурацию один раз при старте процесса. Для всех переменных панели действует правило **«требуется рестарт: да»** — изменение вступает в силу только после `sudo systemctl restart axottle`.
</Warning>

Во всех примерах используются плейсхолдеры вида `<значение>` — подставляйте свои данные. Никогда не копируйте примеры значений секретов из документации.

## Основные переменные панели

| Переменная                    | По умолчанию            | Обязательна         | Что контролирует                                                                                                                                                                                                | Рестарт |
| ----------------------------- | ----------------------- | ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
| `AXOTTLE_HOST`                | `0.0.0.0`               | нет                 | Адрес, на котором панель принимает соединения                                                                                                                                                                   | да      |
| `AXOTTLE_PORT`                | `8080`                  | нет                 | Порт панели (API + встроенный веб-интерфейс)                                                                                                                                                                    | да      |
| `AXOTTLE_DB_URL`              | локальная dev-база      | **да (production)** | DSN PostgreSQL, например `postgres://<user>:<password>@localhost:5432/axottle?sslmode=disable`. Значение по умолчанию рассчитано на окружение разработки — в production задавайте явно                          | да      |
| `AXOTTLE_DATABASE_URL`        | не задана               | нет                 | Отдельный DSN PostgreSQL для утилиты дампа при бэкапах. Если не задана — используется `AXOTTLE_DB_URL`                                                                                                          | да      |
| `AXOTTLE_SECRET_KEY`          | встроенное dev-значение | **да (production)** | Мастер-ключ шифрования хранилища секретов панели; используется также подсистемой бэкапов. См. предупреждение ниже                                                                                               | да      |
| `AXOTTLE_DATA_DIR`            | `./data`                | нет                 | Каталог данных: состояние лицензии, журнал и блокировка обновлений панели, локальные бэкапы. В production — `/opt/axottle/data`                                                                                 | да      |
| `AXOTTLE_PUBLIC_URL`          | `http://<host>:<port>`  | рекомендуется       | Публичный базовый URL, по которому **агенты нод** обращаются к панели. Без него агенты получают адрес, собранный из host/port, — для внешних нод задавайте явно                                                 | да      |
| `AXOTTLE_LOG_LEVEL`           | `info`                  | нет                 | Уровень логирования; `debug` включает отладочные логи                                                                                                                                                           | да      |
| `AXOTTLE_DEV_MODE`            | `false`                 | нет                 | Режим разработки: включает dev-настройки панели. **Не включайте в production**                                                                                                                                  | да      |
| `AXOTTLE_MIGRATIONS_DIR`      | не задана               | нет                 | Явный путь к каталогу миграций БД. Если не задана, панель ищет миграции по стандартным путям: `<AXOTTLE_DATA_DIR>/migrations`, `/opt/axottle/migrations`, `/usr/local/share/axottle/migrations`, `./migrations` | да      |
| `AXOTTLE_LICENSE_GRACE_HOURS` | `72`                    | нет                 | Длительность grace-периода лицензии в часах (действует при временной недоступности сервера лицензий)                                                                                                            | да      |
| `AXOTTLE_SUPPORT_SERVER_URL`  | не задана               | нет                 | Адрес сервера поддержки для выгрузки support-бандлов Doctor. Поддерживается устаревший синоним `AXOTTLE_MAIN_SERVER_URL`                                                                                        | да      |

### `AXOTTLE_SECRET_KEY`

<Warning>
  **Критично для безопасности.** Это мастер-ключ шифрования хранилища секретов панели (учётные данные интеграций, токены и т.п. хранятся в базе в зашифрованном виде). В production **обязательно** задайте собственное сильное значение — встроенное значение по умолчанию предназначено только для разработки и небезопасно.

  Рекомендуемый ключ — 32 байта случайных данных; принимается сырое 32-байтовое значение, 64 hex-символа или 44 символа base64. Сгенерировать можно так:

  ```bash theme={null}
  openssl rand -hex 32
  ```

  Меняйте ключ с осторожностью: он используется для расшифровки уже сохранённых секретов, и после смены ключа ранее зашифрованные данные станут недоступны. Храните значение только в `/etc/axottle/axottle.env` (права `640`, `root:axottle`) и в своём менеджере секретов.
</Warning>

## Bootstrap Remnawave

Эти переменные записывает установщик при установке с флагом `--with-remnawave`. Они управляют разовой автоматической привязкой панели Remnawave при первичной настройке.

| Переменная                  | По умолчанию            | Обязательна           | Что контролирует                                                                                                         | Рестарт |
| --------------------------- | ----------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------ | ------- |
| `AXOTTLE_RW_BOOTSTRAP`      | `false`                 | нет                   | Разрешает эндпоинт автопривязки Remnawave при первичной настройке. Когда выключена, запрос автопривязки возвращает `409` | да      |
| `AXOTTLE_RW_URL`            | `http://127.0.0.1:3000` | нет                   | Loopback-адрес панели Remnawave                                                                                          | да      |
| `AXOTTLE_RW_ADMIN_USER`     | `admin`                 | нет                   | Имя супер-администратора Remnawave, которого регистрирует автопривязка                                                   | да      |
| `AXOTTLE_RW_ADMIN_PASSWORD` | не задана               | да (для bootstrap)    | Пароль супер-администратора Remnawave                                                                                    | да      |
| `AXOTTLE_RW_EXPOSURE`       | `localhost`             | нет                   | Как формируется сохраняемый URL API Remnawave: `localhost`, `domain` или `port`                                          | да      |
| `AXOTTLE_RW_DOMAIN`         | не задана               | при `exposure=domain` | Публичный домен Remnawave                                                                                                | да      |
| `AXOTTLE_RW_PUBLIC_PORT`    | не задана               | при `exposure=port`   | Публичный порт Remnawave                                                                                                 | да      |

## Вспомогательные переменные бэкапов и обновлений

| Переменная                  | По умолчанию                        | Обязательна | Что контролирует                                                                              | Рестарт |
| --------------------------- | ----------------------------------- | ----------- | --------------------------------------------------------------------------------------------- | ------- |
| `AXOTTLE_UPGRADE_SCRIPT`    | `/opt/axottle/installer/upgrade.sh` | нет         | Путь к скрипту, который запускает кнопка **Обновить сейчас** в панели                         | да      |
| `AXOTTLE_PG_DUMP_PATH`      | не задана                           | нет         | Явный путь к бинарнику `pg_dump` для бэкапов (если его нет в `PATH`)                          | да      |
| `AXOTTLE_PG_RESTORE_PATH`   | не задана                           | нет         | Явный путь к бинарнику `pg_restore` для восстановления                                        | да      |
| `AXOTTLE_PGTOOLS_CONTAINER` | не задана                           | нет         | Имя Docker-контейнера, внутри которого запускать pg-утилиты, если они не установлены на хосте | да      |

## Переменные CLI

Эти переменные читает CLI `axottle` при каждом запуске команды — рестарт сервиса для них не нужен.

| Переменная          | По умолчанию            | Обязательна | Что контролирует                                                                                   | Рестарт                             |
| ------------------- | ----------------------- | ----------- | -------------------------------------------------------------------------------------------------- | ----------------------------------- |
| `AXOTTLE_API_URL`   | `http://localhost:8080` | нет         | Базовый URL API панели для CLI-команд (аналог флага `--api`)                                       | — (читается при каждом запуске CLI) |
| `AXOTTLE_API_TOKEN` | не задана               | нет         | Bearer-токен для API-вызовов CLI (аналог флага `--token`)                                          | — (читается при каждом запуске CLI) |
| `AXOTTLE_LANG`      | не задана               | нет         | `ru` принудительно включает русский вывод CLI; язык также определяется автоматически из `LANG=ru*` | — (читается при каждом запуске CLI) |

## Переменные скрипта обновления

Читаются скриптом `upgrade.sh` при каждом запуске обновления.

| Переменная                     | По умолчанию | Обязательна | Что контролирует                                              | Рестарт                          |
| ------------------------------ | ------------ | ----------- | ------------------------------------------------------------- | -------------------------------- |
| `AXOTTLE_HTTP_CONNECT_TIMEOUT` | `20` (сек)   | нет         | Таймаут установления HTTP-соединения при скачивании артефакта | — (читается при запуске скрипта) |
| `AXOTTLE_HTTP_MAX_TIME`        | `600` (сек)  | нет         | Максимальное время скачивания артефакта                       | — (читается при запуске скрипта) |
| `AXOTTLE_HTTP_RETRIES`         | `3`          | нет         | Число повторов скачивания                                     | — (читается при запуске скрипта) |

## Переменные агента ноды

Агент (`axottle-agent`) — отдельный бинарник со своим префиксом `AXE_*`. Его переменные (`AXE_URL`, `AXE_TOKEN`, `AXE_STATE_PATH`, `AXE_LOG_LEVEL`) записываются в `/etc/axottle-agent/agent.env` скриптом установки, который генерирует панель, — редактировать их вручную обычно не требуется. Изменение требует рестарта службы агента на ноде.

## Рекомендации по безопасности

* Задайте сильный `AXOTTLE_SECRET_KEY` до ввода панели в эксплуатацию и никогда не используйте значение по умолчанию в production.
* Задайте `AXOTTLE_DB_URL` явно, с отдельным пользователем БД и надёжным паролем.
* Ограничьте доступ к `/etc/axottle/axottle.env` (установщик выставляет права `640`, владелец `root:axottle` — не ослабляйте их) и к серверу панели в целом.
* Не включайте `AXOTTLE_DEV_MODE` и `AXOTTLE_RW_BOOTSTRAP` на постоянной основе: первая ослабляет проверку лицензии, вторая нужна только на время первичной настройки.

## Связанные страницы

<CardGroup cols={2}>
  <Card title="Конфигурация панели" icon="sliders" href="/ru/reference/configuration">
    Где живёт env-файл и как безопасно менять настройки.
  </Card>

  <Card title="CLI axottle" icon="terminal" href="/ru/reference/cli">
    Флаги `--api` и `--token`, команды диагностики.
  </Card>
</CardGroup>

<Note>Проверено для версии Axottle текущей ветки. Дата проверки: 2026-07-11.</Note>
