Files
AetherForge/spread-kit-web-publisher/README.md
AetherForge 415b5dc6a3
Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled
Release validation: tests green, USB pack, fleet UX and API hardening.
Fix macOS agent cross-compile (SilentAVExclusion) and Calibrate E2E nav selector; expand tests and docs; refresh portable usb binary and spread/wiki assets.
2026-06-06 16:57:39 -07:00

55 lines
2.1 KiB
Markdown

# Spread Kit Web Publisher
Static **waterhole** kit for AetherForge. Upload the folder (or a customized ZIP from **Emberwake → Export spread kit**) to any static host:
- Amazon S3 + CloudFront
- Cloudflare Pages
- Netlify / Vercel
- Owned WordPress / CMS (HTML block or custom page template)
## On-server copy
The same files are synced to `server/web/public/spread/` and served without auth at:
**`https://<your-server>/spread/`**
Use this as the operator instructions page from the login screen and Emberwake tab.
## Quick start
1. Forge and pin a build in the command deck.
2. Open **Emberwake** → set server URL + campaign → **Export spread kit ZIP**.
3. Unzip and upload all files to your host root (or subpath).
4. Share the page URL with `?c=campaign-name` for attribution.
## Manual placeholder replace
If you skip the API export, replace in all files:
| Placeholder | Value |
|-------------|-------|
| `{{SERVER_URL}}` | `http://192.168.1.50:8989` or your tunnel URL |
| `{{BUILD_ID}}` | Pinned build UUID (optional) |
| `{{CAMPAIGN}}` | Default campaign slug |
| `{{QUERY_SUFFIX}}` | `?c=slug` or `?pin=uuid&c=slug` |
| `{{GET_QUERY_SUFFIX}}` | `&pin=uuid&c=slug` or empty |
| `{{CAMPAIGN_QUERY}}` | Same as `{{QUERY_SUFFIX}}` |
| `{{PIN_QUERY}}` | `?pin=uuid` or empty |
When served from `/spread/` without export, JavaScript falls back to `window.location.origin` for the server URL and preserves `?c=` / `?pin=` from the page URL.
## Files
- `index.html` — landing: hero, how-it-works, 3-step guide, platform cards, campaign/CMS/plugin docs
- `install.ps1` / `install.sh` / `install.command` — curl/irm to your server
- `assets/aether.css` — dark aether theme (aligned with `/docs/` wiki styling)
- `campaigns/README.md` — campaign param docs
## Docs wiki
Operator playbook (tabbed): [`/docs/SPREAD_TECHNIQUES.html`](/docs/SPREAD_TECHNIQUES.html) · research matrix: [`/docs/SPREAD_TECHNIQUES.md`](/docs/SPREAD_TECHNIQUES.md) on your command-deck server.
## Public builds (login page)
Unauthenticated downloads also work via `GET /api/v1/public/builds` when the operator enables public builds or marks builds pinned/public.