🤖 PR generated for branch `fix/cyrillic-fonts-dev-certs-and-page-head`.
### Changes Summary
- **Fonts**: Add Cyrillic glyph subsets for Lato, EB Garamond, and Fira
Code.
- **Dev**: Support remote Root CA and encrypted dev CA key in
`.env.dev`.
- **UI & Kits**: Add size variant to `Breadcrumbs` component and enlarge
`PageHead` breadcrumbs with tuned collapse scroll threshold.
- **ESLint**: Add `no-hanging-particles` i18n & markdown typography rule
with auto-fixer.
- **Content & i18n**: Apply `ru-text` editorial and typography polish
(em dashes, number ranges, «ё» restoration, non-breaking spaces) across
`services/www` and `services/docs`.
9.1 KiB
title, description, weight
| title | description | weight |
|---|---|---|
| Справочник переменных окружения | Переменные окружения APEX_*: источники определения и область применения. | 33 |
Пространство имён APEX_* охватывает всю конфигурацию фреймворка. Переменные формируются на четырёх уровнях: при сборке окружения процесса действиями оркестрации значения из более поздних слоёв переопределяют предыдущие.
node.env — идентичность
Закоммичен в корне репозитория; считывается при разрешении идентичности узла. Фреймворк не привязан к доменной структуре: узел объявляет собственный FQDN и публичное имя хоста. Концепция кластера отсутствует, а формат FQDN ничем не ограничен.
| Переменная | Значение | Примечания |
|---|---|---|
APEX_NODE_FQDN |
Действительный FQDN узла (маршрутизация Traefik Host()) |
Если не задан, используется имя хоста ОС (с выводом предупреждения). |
APEX_NODE_HOST |
Публичное имя хоста узла (резервное копирование --host, instance для наблюдаемости/уведомлений) |
По умолчанию совпадает с APEX_NODE_FQDN. Первая часть доменного имени используется как короткое имя name. |
APEX_SUBNET |
Сеть /24 узла для сети direct |
Обязательна, единственный источник подсети. Если не задана, запуск завершается с кодом 66. |
APEX_GIT_AUTHOR_NAME |
Имя автора для коммитов capture-up | По умолчанию — apex [bot]. |
APEX_GIT_AUTHOR_EMAIL |
Email автора для коммитов capture-up | По умолчанию — apex@localhost. |
apex.env — закоммиченные скаляры
Закоммичен в compositions/apex/; не содержит секретных данных.
| Переменная | Значение | Примечания |
|---|---|---|
APEX_TRAEFIK_DIRECT_IP |
Якорный IP краевого прокси в подсети узла | Обязательна для основной композиции (?error). |
APEX_RESTIC_REPOSITORY |
Локатор репозитория резервных копий | Обязательна (?error). |
APEX_RESTIC_COMPRESSION |
Уровень сжатия restic | Опциональна; по умолчанию max (стандарт флота: backup/run также принудительно передаёт --compression max). |
APEX_RESTIC_AWS_REGION |
Регион бэкенда S3 | Опциональна; по умолчанию us-east-1. |
APEX_RESTIC_AWS_ENDPOINT |
URL эндпоинта бэкенда S3 | Опциональна; по умолчанию не задан (AWS S3). Задаётся для любого S3-совместимого хранилища сторонних провайдеров. |
APEX_LOKI_PUSH_URL |
URL приёма Loki для агента Alloy (loki.write) |
Требуется для профиля alloy (?error). |
APEX_PROM_PUSH_URL |
URL remote_write Prometheus для агента Alloy |
Требуется для профиля alloy (?error). |
APEX_OBS_BASIC_AUTH_USER |
Пользователь basic-auth для отправки метрик наблюдаемости | Требуется для профиля alloy (?error). |
COMPOSE_PROFILES |
Подключаемые основные профили (adguard, xray, alloy) |
Может быть пустой; профиль manual активируется через backup/run, а не здесь. |
TZ |
Часовой пояс контейнера | Опциональна; по умолчанию Etc/UTC. |
.env — секреты
Не коммитится в репозиторий; представляет собой символьную ссылку в хранилище первого уровня. Список ключей каждого узла задокументирован в SECRETS.md.
| Переменная | Значение | Примечания |
|---|---|---|
APEX_UID, APEX_GID, APEX_SHARED_GID |
Идентификаторы пользователя noroot для проекта | Внедряются автоматически через tiers/useradd; обязательны (?error). |
APEX_RESTIC_PASSWORD |
Пароль репозитория резервных копий | Обязательна (?error). |
APEX_RESTIC_AWS_ACCESS_KEY_ID, APEX_RESTIC_AWS_SECRET_ACCESS_KEY |
Учётные данные объектного хранилища | Обязательны (?error). |
APEX_TRAEFIK_CF_DNS_API_TOKEN |
Токен DNS-challenge для ACME | Обязательна (?error). |
APEX_TRAEFIK_ACME_EMAIL |
Email учётной записи ACME | Обязательна (?error). |
APEX_OBS_BASIC_AUTH_PASS |
Пароль basic-auth для отправки метрик и логов наблюдаемости | Требуется для профиля alloy (?error). |
APEX_LOKI_BASIC_AUTH |
Пользователи htpasswd для центрального шлюза Loki/Prometheus | Не требуется для основной композиции. Задаётся только на узле, принимающем данные наблюдаемости. |
Экспорты движка — ctx.vars()
Вычисляются движком при запуске; экспортируются в docker compose действиями оркестрации и доступны при рендеринге любого шаблона. Не задавайте их вручную.
| Переменная | Значение |
|---|---|
APEX_NODE_HOST |
Публичное имя хоста узла (node.host); используется для --host в резервном копировании и как instance для наблюдаемости и уведомлений. |
APEX_NODE_FQDN |
Действительный FQDN узла (node.fqdn); используется для правил краевой маршрутизации. |
APEX_SUBNET |
Подсеть узла. |
APEX_COMMONS |
Абсолютный путь к каталогу commons ($APEX_COMMONS/apex — лаунчер, используемый в crontab и юнитах systemd). |
APEX_REPO_ROOT |
Абсолютный путь к корню репозитория узла. |
APEX_TIER1, APEX_TIER2, APEX_TIER3 |
Каталог данных основного проекта для каждого уровня хранения. |
APEX_TIER1_SHARED, APEX_TIER2_SHARED, APEX_TIER3_SHARED |
Общая область для каждого уровня. |
APEX_TIER_ROOT1, APEX_TIER_ROOT2, APEX_TIER_ROOT3 |
Корневые каталоги уровней хранения. |
Note
Для переменных, отмеченных выше как
?error, проверка выполняется на уровне общей основной композиции:docker composeпрерывает разбор конфигурации, если хотя бы одна из них не задана. Благодаря этому пропущенный секрет приводит к немедленной и понятной ошибке.
Ряд переменных основной композиции использует конструкцию ${VAR:-default}, поэтому их указывать необязательно, а значения по умолчанию можно переопределить для конкретного узла: TZ (Etc/UTC), APEX_RESTIC_AWS_REGION (us-east-1), APEX_RESTIC_AWS_ENDPOINT (пусто), APEX_RESTIC_COMPRESSION (max) и APEX_ENCLAVE_SUBNET (198.18.0.0/16 — разрешённый диапазон IP-адресов в ipallowlist для маршрутов к панелям Traefik и AdGuard).
См. также: