From bcb6f3005daffd5abf2e1301bc0b3953e686f3fb Mon Sep 17 00:00:00 2001 From: Aaron Date: Sat, 13 Dec 2025 14:45:46 -0500 Subject: [PATCH] Onboarding: status chip, QR, copy feedback, platform auto-open --- pikit-web/onboarding/index.html | 55 +++++++++++++++++++++++++++----- pikit-web/onboarding/style.css | 56 +++++++++++++++++++++++++++++++++ 2 files changed, 104 insertions(+), 7 deletions(-) diff --git a/pikit-web/onboarding/index.html b/pikit-web/onboarding/index.html index 1ffd56e..7d8edcd 100644 --- a/pikit-web/onboarding/index.html +++ b/pikit-web/onboarding/index.html @@ -14,6 +14,9 @@

Great news — you’re already on your Pi-Kit and it’s responding.

+
+ You’re on HTTP — trust the CA or continue to HTTPS. +

Everything stays on your local network. Let’s move you to the secure (HTTPS) dashboard so you can manage Pi-Kit safely. @@ -45,47 +48,59 @@ Download Pi-Kit CA +

SHA256: 6bc217c340e502ef20117bd4dc35e05f9f16c562cc3a236d3831a9947caddb97

- Windows + Windows

Run mmc → Add/Remove Snap-in → Certificates (Computer) → Trusted Root CAs → Import pikit-ca.crt.

- macOS + macOS

Double-click pikit-ca.crt → Always Trust.

- Linux (Arch / Manjaro / Garuda, etc.) + Linux (Arch / Manjaro / Garuda, etc.) curl -s http://pikit.local/assets/pikit-ca.crt -o /tmp/pikit-ca.crt && sudo install -m644 /tmp/pikit-ca.crt /etc/ca-certificates/trust-source/anchors/ && sudo trust extract-compat
- Linux (Debian / Ubuntu) + Linux (Debian / Ubuntu) curl -s http://pikit.local/assets/pikit-ca.crt -o /tmp/pikit-ca.crt && sudo cp /tmp/pikit-ca.crt /usr/local/share/ca-certificates/pikit-ca.crt && sudo update-ca-certificates
- Linux (Fedora) + Linux (Fedora) curl -s http://pikit.local/assets/pikit-ca.crt -o /tmp/pikit-ca.crt && sudo cp /tmp/pikit-ca.crt /etc/pki/ca-trust/source/anchors/pikit-ca.crt && sudo update-ca-trust
- BSD (FreeBSD / OpenBSD) + BSD (FreeBSD / OpenBSD) fetch -o /tmp/pikit-ca.crt http://pikit.local/assets/pikit-ca.crt && sudo install -m644 /tmp/pikit-ca.crt /usr/local/share/certs/pikit-ca.crt && sudo certctl rehash
+
+
+
+

Use your phone

+

Scan to open https://pikit.local

+
+ QR code to https://pikit.local +

Once trusted, this page will auto-forward you to the secure dashboard.

+

If the hostname ever fails, try http://<pi-ip>/ (or https://<pi-ip>/ — your browser will show the same warning to bypass).

diff --git a/pikit-web/onboarding/style.css b/pikit-web/onboarding/style.css index c84e8cc..87d1d47 100644 --- a/pikit-web/onboarding/style.css +++ b/pikit-web/onboarding/style.css @@ -64,6 +64,22 @@ p { color: var(--text); } +.status-row { + margin: 6px 0 10px; +} + +.status-chip { + display: inline-flex; + align-items: center; + gap: 8px; + padding: 9px 12px; + border-radius: 999px; + background: rgba(68, 211, 146, 0.08); + border: 1px solid var(--border); + color: var(--text); + font-weight: 600; +} + .dot { width: 12px; height: 12px; @@ -152,6 +168,46 @@ a.ghost { background: rgba(255, 255, 255, 0.06); } +.checksum { + margin: 4px 0 10px; + color: var(--muted); +} + +code.inline { + display: inline; + padding: 4px 6px; + border-radius: 6px; +} + +.qr-block { + display: flex; + align-items: center; + gap: 14px; + margin-top: 8px; + padding: 12px 14px; + border: 1px solid var(--border); + border-radius: 12px; + background: rgba(255, 255, 255, 0.02); + width: min(360px, 100%); +} + +.qr-title { + margin: 0; + font-weight: 700; + color: var(--text); +} + +.tiny { + margin: 2px 0 0; + font-size: 0.9rem; +} + +.copy-status { + min-height: 18px; + color: var(--text); + font-size: 0.95rem; +} + button.copy { margin-left: 8px; background: rgba(255, 255, 255, 0.05);