Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 27 additions & 15 deletions data/content.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -129,12 +129,12 @@ projects:
# the v1.1 / v2 milestones; rigforge v1.0 is fully closed). No dates — waves and versions only.
roadmap:
eyebrow: "// the roadmap"
title: "v1.0 — feature-complete, at the release gate."
title: "v1.0 is live. Now, the road to the appliance era."
sub: >-
Built in the open, issue by issue — no vaporware, no roadmap-for-sale. RigForge's v1.0 is done;
Pithead's is feature-complete and through its release gate. Then the appliance era: flash a
drive, boot, and mine.
waves_label: "v1.0 · the launch, wave by wave"
Built in the open, issue by issue — no vaporware, no roadmap-for-sale. Both projects shipped v1.0
and run on real hardware today. What's next is sequenced into small, themed releases — each one
landing a single focus — all the way to v2: flash a drive, boot, and mine.
waves_label: "v1.0 · shipped, wave by wave"
waves:
- { n: "01", name: "Correctness & data-safety", status: "Shipped",
text: "Killed the silent-failure bugs that burn early adopters — no surprise re-syncs, no no-op applies, no stale generated config, no vanished share history." }
Expand All @@ -144,17 +144,29 @@ roadmap:
text: "The thing people screenshot — routed hashrate everywhere, an honest tier, explicit VIP status, a toggleable averaging window, and an operator-first layout." }
- { n: "04", name: "CI & test hardening", status: "Shipped",
text: "Every container image built in CI with hadolint, every script linted, and backup/restore plus host helpers under an expanded test suite." }
- { n: "05", name: "Release gate & launch", status: "The finish line",
text: "A full end-to-end test on a real Ubuntu server — passed. Left: the GHCR release pipeline and refreshed launch assets, then tag v1.0." }
- { n: "05", name: "Release gate & launch", status: "Shipped",
text: "A full end-to-end test on a real Ubuntu server, the GHCR release pipeline, and refreshed launch assets — tagged and live as v1.0." }
ship:
title: "v1.0 — the whole operation, on real hardware."
text: "End-to-end tested on a real Ubuntu server, packaged, and versioned in the open — RigForge's v1.0 is already done."
beyond_label: "beyond v1.0"
horizon:
- { tag: "v1.1", mark: "gear", accent: "purple", name: "Control & insight",
text: "Change any setting from the dashboard, one-click upgrades, an interactive Telegram bot, operator alerting (node/worker-down + an external dead-man's switch), a pool cadence & luck panel, and persistent time-series telemetry — plus privacy on by default, routing the P2Pool sidechain and the XvB upstream through Tor. RigForge adds guided BIOS tuning and a richer stats API." }
- { tag: "v2", mark: "spark", accent: "ember", name: "The appliance era",
text: "Flash a USB, boot, and mine. Self-provisioning appliance images for the stack host and RigForge miners, an immutable Podman/Quadlet runtime, and standalone Monero & Tari node-starter stacks." }
title: "v1.0 — the whole operation, live on real hardware."
text: "End-to-end tested on a real Ubuntu server, packaged, versioned, and released in the open — both Pithead and RigForge shipped at v1.0."
beyond_label: "the road ahead · release by release"
releases:
- { n: "1.1", status: "Next", name: "Privacy, by default",
text: "Route the P2Pool sidechain and the XvB donation upstream through Tor by default (benchmark-gated, with a documented opt-out), run every container as a non-root user, and add a component-health panel that shows each connection's Tor-vs-clearnet posture at a glance." }
- { n: "1.2", status: "Planned", name: "Operator alerts",
text: "A Telegram ping the moment a node or worker drops — and when it recovers — plus an external Healthchecks dead-man's switch that catches a dead host or power loss the stack can't report itself, with outages flagged right on the chart." }
- { n: "1.3", status: "Planned", name: "Trends & insight",
text: "Persistent time-series telemetry instead of last-value gauges: reject-rate trends, a pool cadence & luck panel, host-health badges (AVX2, HugePages, low disk), and Tari + XvB earnings calculators." }
- { n: "1.4", status: "Planned", name: "Control from the dashboard",
text: "Change any setting from the dashboard and apply it safely — and a one-click, in-place upgrade the moment a new release lands. No SSH, no CLI, no hand-edited config." }
- { n: "1.5", status: "Planned", name: "Fleet management",
text: "Read and edit each rig's XMRig config from the dashboard with versioned history, consume RigForge's richer per-worker feed (power, tune, firmware identity), and keep a primary and backup stack in sync." }
- { n: "1.6", status: "Planned", name: "Deploy anywhere",
text: "Co-hosting migration guides, relaxed network bindings for shared home servers, and a remote Tari base-node option to mirror remote Monero." }
ship_beyond:
tag: "v2"
name: "The appliance era"
text: "Flash a USB, boot, and mine. Self-provisioning appliance images for the stack host and RigForge miners, an immutable Podman/Quadlet runtime, and standalone Monero & Tari node-starter stacks."
donate:
eyebrow: "// fuel the roadmap"
title: "Built in the open. Funded by the people who run it."
Expand Down
32 changes: 22 additions & 10 deletions layouts/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -183,23 +183,35 @@ <h3 class="wave-name">{{ .name }}</h3>
<div class="wave wave-ship reveal">
<div class="wave-node ship">{{ partial "icon.html" "stack" }}</div>
<div class="wave-body">
<div class="wave-head"><h3 class="wave-name">{{ $c.roadmap.ship.title }}</h3><span class="status-pill ship-pill mono">SHIP</span></div>
<div class="wave-head"><h3 class="wave-name">{{ $c.roadmap.ship.title }}</h3><span class="status-pill ship-pill mono">LIVE</span></div>
<p class="wave-text">{{ $c.roadmap.ship.text }}</p>
</div>
</div>
</div>

<p class="waves-label mono reveal beyond-label">{{ $c.roadmap.beyond_label }}</p>
<div class="cards-2 horizon">
{{ range $c.roadmap.horizon }}
<article class="card horizon-card reveal accent-{{ .accent }}">
<div class="horizon-head">
<span class="horizon-mark">{{ partial "icon.html" .mark }}</span>
<span class="status-pill mono">{{ .tag }}</span>
<div class="waves">
<span class="waves-rail" aria-hidden="true"></span>
{{ range $c.roadmap.releases }}
<div class="wave reveal">
<div class="wave-node"><span class="mono">{{ .n }}</span></div>
<div class="wave-body">
<div class="wave-head">
<h3 class="wave-name">{{ .name }}</h3>
<span class="status-pill mono">{{ .status }}</span>
</div>
<p class="wave-text">{{ .text }}</p>
</div>
<h3 class="card-title">{{ .name }}</h3>
<p class="card-text">{{ .text }}</p>
</article>
</div>
{{ end }}
{{ with $c.roadmap.ship_beyond }}
<div class="wave wave-ship reveal">
<div class="wave-node ship">{{ partial "icon.html" "spark" }}</div>
<div class="wave-body">
<div class="wave-head"><h3 class="wave-name">{{ .name }}</h3><span class="status-pill ship-pill mono">{{ .tag }}</span></div>
<p class="wave-text">{{ .text }}</p>
</div>
</div>
{{ end }}
</div>

Expand Down