77 lines
2.2 KiB
Markdown
77 lines
2.2 KiB
Markdown
# 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.
|