6.7 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 версии v2.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.
См. также: