# Prefer: VERSION="$(cat scripts/release/CURRENT_VERSION)" # → 0.1.0-rc16
VERSION=0.1.0-rc16 bash scripts/release/make_release_bundle.shOutput:
- Windows zip includes
hackme.exe,workerpoh.exe,minersign.exe,start_hackme_public_pool.bat(recommended),start_hackme_desktop_mode.bat,start_hackme_dashboard.bat, andRELEASE_QUICKSTART.md. Solo/local-only mining launchers were removed. dist/release_<VERSION>/hackme_<VERSION>_windows.zipdist/release_<VERSION>/hackme_<VERSION>_linux.tar.gzdist/release_<VERSION>/SHA256SUMS.txtdist/release_<VERSION>/BUILD_INFO.txtdist/release_<VERSION>/RELEASE_MANIFEST.jsondist/release_<VERSION>/latest.json— L1 update channel (schemahackme.release.latest.v1)dist/release_<VERSION>/SMOKE_REPORT.txt
Shared latest.json is generated by scripts/release/generate_latest_json.sh at the end of every bundle (and after refresh_release_manifest.sh).
Publish both:
- GitHub Release asset:
latest.json(+ archives already published) - Site mirror:
https://hackme.tech/dist/latest.json(copy from this release, or symlink current)
Miners self-update (preserves .env / data / logs):
# Linux desktop or /opt/hackme
bash update_hackme_miner.sh
# HackMe OS in-place (same L1, INSTALL_DIR=/opt/hackme)
bash update_hackme_os_binaries.sh
# Offline / CI gate against local dist
bash scripts/tests/update_channel_gate.sh# Windows (installer preferred; -PreferZip for zip-only installs)
powershell -ExecutionPolicy Bypass -File update_hackme_miner.ps1
# or: update_hackme_miner.batL2 (.deb / nfpm) and L3 (apt repo) — local tooling ready; do not publish until D0:
VERSION=0.1.0-rc16 bash scripts/release/linux/build_deb_from_dist.sh
bash scripts/release/apt/build_local_apt_repo.sh # unsigned local file:// repo
# see scripts/release/apt/README.mdOptional local re-pack (inject updaters into linux tar, refresh SHA — no publish):
bash scripts/release/repack_linux_with_updaters.shPublish feed (when ready — not during dry-run):
bash scripts/ops/publish_latest_json.sh
UPLOAD_GH=1 bash scripts/ops/publish_latest_json.sh # needs gh
NODE_SSH=hackme-vps bash scripts/ops/deploy_hackme_site.sh # rsyncs dist/latest.jsonDashboard: Updates button → GET /api/updates/check (compares local Version to latest.json).
bash scripts/release/verify_artifacts.sh "dist/release_<VERSION>"bash scripts/release/smoke_artifacts.sh "dist/release_<VERSION>"VERSION=nightly_$(date -u +%Y%m%dT%H%M%SZ) bash scripts/release/release_nightly.shmake_release_bundle.sh builds HackMe-Setup-<VERSION>.exe when Inno Setup is available.
Linux (Docker):
VERSION=0.1.0-rc16 bash scripts/release/make_release_bundle.sh
# or after bundle:
bash scripts/release/windows/build_installer.sh 0.1.0-rc16Windows:
pwsh -File scripts/release/windows/build_installer.ps1 -Version 0.1.0-rc16The wizard installs to Program Files\HackMe, creates Start menu + desktop shortcuts, writes registry keys, runs setup_hackme_miner.bat (pool token + hackme.env). ZIP remains as an advanced fallback.
Bootable live ISO — CPU isolation, RT scheduler, GPU performance mode, auto rig profile, public pool worker.
export HACKME_RELEASE_POOL_MINER_TOKEN="$(cat .secrets/hackme_coordinator_worker_token)"
VERSION=0.1.0-rc16 bash scripts/release/iso/build_hackme_miner_iso.sh→ dist/release_<VERSION>/HackMe-OS-<VERSION>-amd64.iso
Details: docs/HACKME_OS.md.
From a machine with SSH access:
NODE_SSH=hackme-vps NODE_DEPLOY_DIR=/opt/hackme bash scripts/ops/deploy_hackme_site.shSet SKIP_DIST=1 for HTML-only. Default syncs web/site/ and full dist/.