# HY2XS HY2XS is a two-layer install package for a clean Debian 12 target: - local builder layer: creates one transferable install archive - install-only Bun/TypeScript orchestrator: runs on the target as a compiled artifact - bundled HY2XS admin fork: shipped inside the package - vanilla Hysteria2: downloaded from the official upstream during install The baseline deliberately excludes target-side builds, update, rollback, uninstall, Telegram bot delivery, billing, and external access/profile delivery. ## Repository Layout - `builder/` - local shell-first packaging pipeline - `orchestrator/` - Bun + TypeScript install-only orchestrator sources - `package/` - package skeleton: thin entrypoint, templates, systemd units, package docs - `apps/` - current HY2XS admin fork source - `docs/` - baseline architecture and acceptance docs - `hy2xs_implementation_plan-no_git/` - implementation roadmap and task breakdown - `dist/` - final install archives generated by the builder ## Build On the local build machine: ```sh PACKAGE_VERSION=0.1.0 ./builder/build.sh ``` If tools are not in `PATH`, pass explicit binaries: ```sh GO_BIN=/path/to/go PNPM_BIN=/path/to/pnpm BUN_BIN=/path/to/bun PACKAGE_VERSION=0.1.0 ./builder/build.sh ``` On the current Windows workstation the known tool paths are: ```powershell $env:PATH = "E:\Git\cmd;E:\go\bin;" + $env:PATH E:\go\bin\go.exe test ./... pnpm.cmd install --frozen-lockfile ``` The expected result is: ```text dist/hy2xs-install-0.1.0.tar.gz ``` The target server must not run `bun install`, `pnpm install`, TypeScript transpilation, frontend builds, or Go builds. ## Publication Target repository: ```text https://git.ext.flamy.studio/flamy_dev/HY2XS_flamy.git ``` Publish only after the full baseline acceptance is complete, including the Bun/TypeScript orchestrator artifact build and final package smoke checks. ## Install On a clean Debian 12 target, unpack the archive and run as root: ```sh ./install.sh --non-interactive --domain example.com ``` Useful baseline flags: ```sh ./install.sh --non-interactive --domain example.com --port 443 --ssh-port 22 --ui-port 8080 ``` The install flow writes `/etc/hysteria/post-install.env` with the resulting package, Hysteria, port, and path state.