From 08d1879959ea0817d52fb080bdca0949667b4221 Mon Sep 17 00:00:00 2001 From: Local Dev Date: Thu, 10 Sep 2026 00:38:48 +0200 Subject: [PATCH] site(hephaestus.x): redesign landing to Sirius design language + source section MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Answers a community question ("how would one run this if it's not on GitHub?") by putting the source repo front and centre, plus a runnable docker-compose recipe for self-hosting. - Palette + typography (Fraunces / DM Sans / JetBrains Mono / Ubuntu) and layout (topnav, radial-stack background, .card, .steps, .verify, .note) aligned with site-sirius-x. Adds js/theme.js (copied from sirius-x) for the Fraunces↔Ubuntu font toggle. - Sticky topnav: brand, section links, Explore repos, wallet dropdown at right. - Hero: "The forge on Bitcoin Cash" — BCH-green accent, matched serif hierarchy. - New "See the source. Verify the deploy." section — three cards for the repo, auth-proxy, and PROTOCOL.md; below that a docker-compose run-your-own recipe with git clone + cp .env.example + docker compose up. - Pantheon and Verify-against-the-chain sections mirror Sirius.X's structure so the seven .x pillars feel like one product. - Browse repos link fixed to be absolute (https://code.silentmode.st/explore/repos) so it works through navigate.st gateway too, not just BCNR-aware browsers. --- hephaestus.x/index.html | 411 +++++++++++++++++++++++++++++++++------ hephaestus.x/js/theme.js | 63 ++++++ 2 files changed, 416 insertions(+), 58 deletions(-) create mode 100644 hephaestus.x/js/theme.js diff --git a/hephaestus.x/index.html b/hephaestus.x/index.html index a3cc299..2bf2df5 100644 --- a/hephaestus.x/index.html +++ b/hephaestus.x/index.html @@ -3,45 +3,111 @@ -Hephaestus — the forge - +Hephaestus.X — the forge on Bitcoin Cash + + + + + + + + + + + + + + + - + +
⚒️
-

Hephaestus

-

A code host you sign in to with a Bitcoin Cash wallet. No email, no password reset, no middleman.

+

The forge on Bitcoin Cash.

+

Hephaestus is the code host for the BCH ecosystem — Cauldron contributors, Sirius developers, wallet + authors, indexer maintainers. Sign in with a wallet, push a repo, host a release. No email, no password reset, + no middleman.

+
- Bitcoin Cash wallet ▾ + 🔑 Sign in with wallet ▾
- Browse repos - Read the docs + Browse repos → + See the source
-
+
+

How it works

+

Three moving parts, no magic. Forgejo does the git and issue tracking, an auth-proxy translates + Bitcoin Cash message signatures into OpenID Connect tokens Forgejo understands, and Caddy fronts the whole + thing behind the two hostnames — hephaestus.x for BCNR-aware browsers, code.silentmode.st + as a public DNS mirror.

-

Your wallet is your account

-

Generate or import a BCH wallet in the browser. Sign one challenge, you're in. Nothing to remember except your recovery phrase.

+

🔑 Wallet is the account

+

Generate or import a BCH wallet in the browser. Sign one BIP-137 "Bitcoin Signed Message" challenge, + and Forgejo auto-provisions bch_<first-20-of-your-cashaddr>. Rename it later — even to a + plain name like BitcoinCash. The private key never leaves your device.

-

Storage on Sia

-

LFS, releases, packages, attachments — all sharded and encrypted across independent Sia hosts worldwide. Live git stays on a fast local disk for speed.

+

💾 Cold blobs on Sia

+

Live git repos + Postgres stay on the VPS SSD for speed. LFS objects, release archives, container images, + package registry blobs and issue attachments spill to the Sia + network via s3.silentmode.st:8600. Encrypted client-side, sharded across independent hosts.

-

Standard git, nothing weird

-

git clone, git push, PRs, issues, releases, container/npm registries. Bring your existing muscle memory.

+

🌐 Two hostnames, one instance

+

hephaestus.x is the primary — an on-chain BCNR certificate, chipnet, owner-controlled, TLS via the + Silent Mode CA. code.silentmode.st is the public-DNS mirror for browsers without a BCNR resolver. + Same Forgejo, same accounts, same repos.

+
+
+

🧭 Standard git, nothing weird

+

git clone, git push, PRs, issues, releases, container/npm registries, the + Forgejo API. Bring your existing muscle memory — the only unusual bit is that you signed in with a wallet + instead of an email.

-
-

Where it lives

-
-
forge
code.silentmode.st (mirror) · hephaestus.x (primary) — same Forgejo 10, dual-hostname
-
this name
hephaestus.x — on-chain BCNR certificate, chipnet, owner-controlled, TLS via Silent Mode CA
-
storage
Sia network via s3.silentmode.st:8600, encrypted client-side · static landing mirrored to Sia bucket as DR backup
-
source
silentmode/hephaestus — the docker-compose + auth-proxy + Caddyfile
-
protocol
BIP-137 "Bitcoin Signed Message" over BCH secp256k1 — any wallet that speaks Sign Message can log in
+
+

Sign in in three steps

+

Nothing to install, nothing to remember except your recovery phrase.

+
    +
  1. Pick your route. Sign up (create a new wallet in the browser), Sign in (import a 12/24-word + phrase you already have), or WizardConnect (sign with an external wallet — Cashonize, Paytaca — over an + encrypted relay).
  2. +
  3. Set a browser passphrase. Used to encrypt the wallet in your browser's localStorage. + Minimum 8 characters. Never leaves your device.
  4. +
  5. Sign the challenge. Your browser signs a one-time message, the auth-proxy verifies the signature + against your Bitcoin Cash address, and Forgejo hands you a session cookie. You land in the dashboard.
  6. +
+ +
+ +
+

See the source. Verify the deploy.

+

The whole forge — the Docker Compose stack, the Caddyfile, the auth-proxy that verifies wallet + signatures, the Forgejo Dockerfile with our CA baked in, every helper script — is on Hephaestus itself. + Clone it, read it, run it.

+ +
+
+

📖 silentmode/hephaestus

+

The full stack. docker-compose.yml, caddy/Caddyfile, + auth-proxy/ (Fastify OIDC provider), forgejo/Dockerfile, + scripts/, PROTOCOL.md.

+ +
+
+

🔐 auth-proxy

+

The wallet-to-OIDC bridge. ~250 lines of TypeScript that produces an Ed25519-signed id_token + after verifying a BIP-137 signature against a claimed CashAddr. The whole crypto path is in + src/verify.ts.

+ +
+
+

📜 PROTOCOL.md

+

Wallet-auth flow, message format, replay-protection, prefix handling (bitcoincash / bchtest / bchreg). + The document a third-party wallet needs to add native support.

+ +
+
+ +

Run your own

+

Nothing here needs Hephaestus.X's operator — the same compose stack runs on any Linux box with + Docker. Bring your own domain, a TLS cert, and a Sia bucket (the sia.storage free tier is enough for a small + forge). Then docker compose up.

+
# 1. clone
+git clone https://code.silentmode.st/silentmode/hephaestus.git
+cd hephaestus
+
+# 2. configure — copy .env.example, fill in your domain, Sia S3 creds, and OIDC secret
+cp .env.example .env
+$EDITOR .env
+
+# 3. run — Caddy + Postgres + Forgejo + auth-proxy come up together
+docker compose up -d
+
+# 4. first wallet signs in and takes the admin seat
+open https://your-domain.example/user/oauth2/hephaestus-wallet
+ +
Open source, MIT. Every commit is signed, every dependency is pinned. If you find + something you want to fix or improve, open a PR — or just fork it and run your own instance. That is the + point.
+
+ +
+

The Silent Mode pantheon

+

Hephaestus is one of seven sibling .x names. Each project is its own on-chain certificate, + each site is reachable through any BCNR resolver, plus the silentmode.st gateway for browsers without one.

+
+
+

⛓️ Silentmode.X

+

The project umbrella. Redirects to silentmode.st where every pillar has its own landing.

+ +
+
+

⭐ Sirius.X

+

Names on Bitcoin Cash — register, resolve, verify, manage TLDs and names.

+ +
+
+

🧭 Theseus.X

+

The browser that speaks BCNR natively — Chromium build with the resolver baked in, no OS-level daemon.

+ +
+
+

⚒️ Hephaestus.X you're here

+

The forge. Forgejo instance for the ecosystem's git repos, backed by BCH wallet auth. This site.

+ +
+
+

🔮 Prometheus.X

+

Fire from the chain. Foresight and experimentation layer. Redirects to silentmode.st/prometheus/.

+ +
+
+

☀️ Helios.X

+

Public gaze — analytics, dashboards, transparency. Redirects to silentmode.st/helios/.

+ +
+
+

✉️ Hermes.X

+

Messenger. Nostr-based messaging bound to a BCNR name via the np + nr records.

+ +
+
+
+ +
+

Verify this page against the chain

+

You do not have to trust that hephaestus.x is served by anyone specific. The name's + certificate is on the Bitcoin Cash chain; the records point to a specific IP and a specific Sia bucket; every + path is independently checkable.

+ +

1. Reach this site via more than one route

+

The same content should be served from at least two independent paths. If one mirror disappears, + the others still work. If two disagree, the on-chain record is the tiebreaker.

+
    +
  • Via any BCNR resolver: https://hephaestus.x/ (requires the local root CA)
  • +
  • Via the public gateway: https://navigate.st/bns/hephaestus.x
  • +
  • Via silentmode.st mirror: https://silentmode.st/hephaestus/
  • +
  • Public DNS mirror of the forge itself: https://code.silentmode.st/
  • +
+ +

2. Where it lives

+
+
forge
hephaestus.x (primary) · code.silentmode.st (public-DNS mirror) — same Forgejo 10 instance, dual-hostname
+
this name
hephaestus.x — on-chain BCNR certificate, chipnet, owner-controlled, TLS via the Silent Mode CA
+
storage
Sia network via s3.silentmode.st:8600, client-side encrypted · static landing mirrored to a Sia bucket as DR backup
+
source
silentmode/hephaestus — docker-compose, auth-proxy, Caddyfile, the whole stack
+
protocol
BIP-137 "Bitcoin Signed Message" over BCH secp256k1 — any wallet that speaks Sign Message can log in
+ + diff --git a/hephaestus.x/js/theme.js b/hephaestus.x/js/theme.js new file mode 100644 index 0000000..96d90d1 --- /dev/null +++ b/hephaestus.x/js/theme.js @@ -0,0 +1,63 @@ +// Sirius.X font picker — reader chooses between Fraunces (Silent Mode +// family — editorial serif, default) and Ubuntu (Bitcoin Cash brand +// font — humanist sans). Persisted in localStorage under 'sirius-font'. +// +// The runtime attribute goes on — pages that want to opt out +// simply omit the include. The actual font-swap CSS is defined per +// page (in each page's