🤖 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`.
7.0 KiB
title, description, weight
| title | description | weight |
|---|---|---|
| Начало работы с узлом apex | Начальная настройка репозитория узла и перевод хоста под управление apex. | 5 |
В этом руководстве показано, как настроить новый хост: от клонирования репозитория узла до запуска рабочего стека сервисов. Предполагается, что репозиторий узла уже создан; если его нужно собрать с нуля, см. Руководство: Сборка репозитория узла.
Предварительные требования
- Хост на базе Debian. Подойдёт любой FQDN: идентичность узла задаётся явно в
node.env(APEX_NODE_FQDN,APEX_NODE_HOST,APEX_SUBNET), а не выводится из имени хоста. gitи Python 3 — движок использует только стандартную библиотеку,pipне нужен.- Docker с Compose версии 2.20 или новее (базовая композиция подключается через директиву
include:). - Учётная запись с правами sudo для входа на хост.
- Три хранилища под уровни (например, три точки монтирования).
Начальная настройка
{{% steps %}}
Склонируйте репозиторий узла
git clone --recurse-submodules git@github.com:<owner>/<node-repo>.git
cd <node-repo>
./init.sh
source ~/.bashrc
Скрипт init.sh инициализирует субмодуль commons/, настраивает core.hooksPath на commons/githooks, помечает чекаут как safe.directory и добавляет commons/ в начало PATH (лаунчер находится в commons/apex).
Проверьте обнаружение действий
apex --help
В списке отображается каждое действие commons плюс любые локальные проприетарные модули узла с меткой (local). Если в node.env не задан APEX_NODE_FQDN, движок выводит предупреждение и использует имя хоста ОС. На рабочей станции это безобидно, но на самом узле задайте APEX_NODE_FQDN явно. Параметр APEX_SUBNET обязателен: без него движок завершит работу с кодом 66.
Свяжите уровни хранилища
apex tiers/link <tier1-path> <tier2-path> <tier3-path>
Команда создаёт ссылки compositions/@tierN на уровне узла, каталоги уровней и ссылки @tierN для каждого проекта, области shared/, а также символьную ссылку на .env каждого проекта в уровень 1. При успешном выполнении выводится сообщение @tier setup completed..
Заведите пользователей проектов
apex tiers/useradd
apex tiers/chown
Команда tiers/useradd создаёт по одному системному пользователю noroot-<project> для каждой композиции и общую группу noroot-shared, а также прописывает APEX_UID, APEX_GID и APEX_SHARED_GID в .env каждого проекта. Затем tiers/chown выставляет права по матрице владения (см. Концепция: Многоуровневое хранилище) и выводит сообщение Permissions applied..
Заполните базовые секреты
Отредактируйте compositions/apex/.env (символьная ссылка в хранилище уровня 1, никогда не коммитится), указав ключи из файла SECRETS.md репозитория узла:
APEX_RESTIC_PASSWORD=...
APEX_RESTIC_AWS_ACCESS_KEY_ID=...
APEX_RESTIC_AWS_SECRET_ACCESS_KEY=...
APEX_TRAEFIK_CF_DNS_API_TOKEN=...
APEX_TRAEFIK_ACME_EMAIL=...
APEX_OBS_BASIC_AUTH_PASS=... # только когда включён профиль наблюдаемости alloy
Переменные APEX_UID, APEX_GID и APEX_SHARED_GID уже добавлены: tiers/useradd сохраняет их между специальными комментариями-маркерами. Несекретные скалярные значения (APEX_RESTIC_REPOSITORY, push-URL, COMPOSE_PROFILES, TZ и др.) хранятся в отслеживаемом файле compositions/apex/apex.env (см. Руководство: Сборка репозитория узла).
Настройте хост
apex configure
Команда запускает все действия configure/* в строгом порядке: base, ufw, crowdsec, cron, systemd, routing. Каждый шаг можно выполнить и отдельно; некоторые из них поддерживают флаг --dry-run (см. Руководство: Эксплуатация узла).
Поднимите стек
apex compose up
Сначала запускается базовая композиция (она создаёт общие сети), затем — композиции отдельных сервисов в алфавитном порядке.
{{% /steps %}}
Проверка
apex --helpвыводит список действий без предупреждений на работающем хосте.docker psпоказывает базовые контейнеры (apex-traefik,apex-socket-proxyи дополнительные сервисы активных профилей), а также якорный контейнер каждого проекта.apex utils/lint-docker-composeзавершается сообщениемAnchor IP validation passed..
См. также: