package constant import ( "os" "path/filepath" ) func getenv(name string, fallback string) string { value := os.Getenv(name) if value == "" { return fallback } return value } // Пути читаются напрямую из canonical env HY2XS. // // Раньше здесь стояли HUI_DATA/HUI_LOG, а systemd-юнит перекладывал в них // значения из HY2XS_DATA_DIR/HY2XS_LOG_DIR. Этот мост от старого H UI не давал // ничего, кроме второго имени у той же величины, и делал юнит обязательным // участником контракта конфигурации. var ( DataRootDir = getenv("HY2XS_DATA_DIR", "/var/lib/hy2xs-admin") LogDir = getenv("HY2XS_LOG_DIR", "/var/log/hy2xs") SqliteDBDir = DataRootDir BinDir = filepath.Join(DataRootDir, "bin") // Каталога для выгрузок здесь нет намеренно: артефакты экспорта // формируются в памяти и отдаются прямо в ответ. Персистентный // export-каталог накапливал на диске JSON с секретами. SqliteDBPath = filepath.Join(DataRootDir, "hy2xs-admin.db") Hysteria2ConfigPath = "/etc/hysteria/config.yaml" Hysteria2BinPath = "/usr/local/bin/hysteria" SystemLogPath = filepath.Join(LogDir, "hy2xs-admin.log") ) const ( TokenType = "Bearer" ) // Version — версия пакета HY2XS, из которого собран этот бинарник. // // Значение проставляется на сборке через // `-ldflags -X hy2xs-admin/model/constant.Version=v${HY2XS_VERSION}`, // где HY2XS_VERSION приходит из корневого versions.env. Собственной // константы здесь нет намеренно: захардкоженная версия админки уже успела // разъехаться с версией пакета. // // "dev" остаётся только для сборок вне tools/build/build.sh. var Version = "dev"