# Runtime env и post-install snapshot ## Цель документа Зафиксировать двухслойную модель: - editable runtime env: `/etc/hy2xs/hy2xs.env` - generated deploy snapshot: `/etc/hysteria/post-install.env` ## Зачем нужен файл После первичной установки оператору нужны: 1) runtime-файл, который оркестратор читает и валидирует; 2) snapshot-файл фактического deploy-состояния. В snapshot видно: - какой пакет был установлен - какой build артефакт использован - какой стек оркестратора применён - какая версия Hysteria реально установилась - какой fork/build UI разложен на target - какие базовые параметры сети и портов заданы Именно для этого создаётся `post-install.env`. ## Чего файл не делает Этот файл: - не делает оркестратор update-manager'ом - не гарантирует автоматическое применение изменений - не заменяет runtime-конфиги - не превращает target в builder ## Рекомендуемые пути ```bash /etc/hy2xs/hy2xs.env /etc/hysteria/post-install.env ``` Оба файла должны иметь права `0600`. ## Минимальный набор переменных ### Deploy / package - `DEPLOY_TARGET_OS` - `DEPLOY_TIMESTAMP` - `PACKAGE_NAME` - `PACKAGE_BUILD_ID` - `PACKAGE_VERSION` ### Orchestrator - `ORCH_SOURCE_STACK=bun-typescript` - `ORCH_BUILD_MODE` - `ORCH_BUILD_ID` - `ORCH_ENTRYPOINT` ### Общие - `DEPLOY_DOMAIN` - `PUBLIC_HOST` - `PUBLIC_PORT` - `SSH_PORT` - `HY2XS_FIREWALL_ENABLED` - `HY2XS_FIREWALL_STAGED_APPLY` ### Hysteria - `HY2_SOURCE=official-upstream` - `HY2_VERSION` - `HY2_TLS_MODE` - `HY2_ACME_EMAIL` - `HY2_TLS_CERT_PATH` - `HY2_TLS_KEY_PATH` - `HY2_LISTEN_HOST` - `HY2_PORT` - `HY2_AUTH_MODE` - `HY2_AUTH_URL` - `HY2_TRAFFIC_STATS_LISTEN` - `HY2_OBFS_TYPE` - `HY2_OBFS_PASSWORD` - `HY2_BANDWIDTH_UP_Mbps` - `HY2_BANDWIDTH_DOWN_Mbps` - `HY2_IGNORE_CLIENT_BANDWIDTH` - `HY2_CONFIG_PATH` ### HY2XS admin - `HUI_ENABLED` - `HUI_FORK_REF` - `HUI_BUILD_ID` - `HUI_BIND_HOST` - `HUI_PORT` - `HUI_INSTALL_DIR` - `HUI_DATA_DIR` - `HUI_LOG_DIR` ## Как работать с файлами Правильная модель: 1. оркестратор создаёт `hy2xs.env` и `post-install.env` при установке; 2. оператор редактирует только `hy2xs.env`; 3. оператор запускает `reconfigure --dry-run`, затем `reconfigure --apply`; 4. оркестратор обновляет runtime и перезаписывает snapshot. ## Что нельзя делать - сваливать туда временный мусор - считать, что edit env автоматически меняет runtime без `reconfigure --apply` - использовать файл как замену настоящей конфигурации сервисов ## Пример См. [examples/post-install.env.example](examples/post-install.env.example).