fix: self-host compose ownership, key import, owner onboarding - #2824
fix: self-host compose ownership, key import, owner onboarding#2824Chessing234 wants to merge 3 commits into
Conversation
|
Can we have this merged to fix this issue? |
|
@tlongwell-block @wesbillman @wpfleger96 mind taking a look when you get a chance? |
|
hex import is split out as a focused pr: https://github.com/block/buzz/pull/new — wait, will link the number. this selfhost bundle stays conflicting; happy to rebase the compose bits separately if useful. |
|
hex import is split out as #4504 so it can land without the conflicting compose bundle. |
|
self-host compose ownership + key import path. @MajorTal you've been in the desktop/git weeds lately if this is useful overlap. |
Fresh named volumes are root-owned; the relay runs as uid 1000 and cannot create /data/git/.pack-cache without an init step. Closes block#2814 Signed-off-by: Taksh <takshkothari09@gmail.com>
Self-hosters paste the printed secret into desktop onboarding, which expects nsec1 — hex-only output left that path stuck. Closes block#2815 Signed-off-by: Taksh <takshkothari09@gmail.com>
"I own the community" previously only opened Builderlab. Self-hosters need a relay URL path; keep hosted sign-in as a second choice. Closes block#2816 Signed-off-by: Taksh <takshkothari09@gmail.com>
21a46be to
eb76289
Compare
|
rebased onto main and split hex import into #4504 — still waiting on maintainer review before it can merge. |
ryanmitchellneely
left a comment
There was a problem hiding this comment.
Review (issue author of #2816)
Thanks @Chessing234 — this unblocks the exact dead-end I hit.
#2816 owner onboarding — LGTM
WelcomeSetup.tsx does the right product split:
- I own the community no longer jumps straight to Builderlab
- New owner page offers:
- Connect a self-hosted relay → existing member/relay URL flow
- Sign in with Builderlab → hosted path
memberBackPagekeeps Back correct from both entry points (member and self-host owner)
That matches the expected behavior in #2816 and the provider-neutral framing others confirmed on current main (role ≠ hosting).
Related fixes in this PR — also good
buzz-admin generate-key: prints hex and npub/nsec so desktop paste works (#2815 half). Clear operator copy.- compose
git-data-init: chownbuzz-git-datato uid 1000 before relay start — correct fix for fresh named volumes + non-rootUSER buzzpack-cache loop (#2814).
Non-blocking notes
- Hex secret import for desktop is correctly deferred to #4504 per PR body — fine; just keep that linked so self-hosters don’t think this PR alone finishes key import.
- No Playwright/onboarding regression in the diff; morthenjensen-wq offered a focused test on #2816 — nice follow-up but not a merge blocker for this UX fix.
- Self-host Mac still needs the known CORS footgun (
BUZZ_CORS_ORIGINS=tauri://localhost) until that’s documented/defaulted elsewhere — out of scope here.
Verdict
Please merge. This is the first-five-minutes path for the OSS/self-host audience the repo targets. Happy to re-verify on a desktop build once it lands.
— Ryan (reporter of #2816)
|
Confirmed — I just hit this exact onboarding path while setting up Buzz on a second machine with the same identity. My existing community was already working on Windows, including another member who had successfully joined it. When setting up the Mac with the same nsec, I chose: "I already have a community" → "I own the community" That sent me directly into the Builderlab sign-in flow, even though I wasn't trying to create or manage a hosted community. The workaround was basically to "go through the gap in the fence":
So #2824 matches the actual user experience very well. The important UX distinction really is ownership vs. hosting: owning a community shouldn't imply that it is Builderlab-hosted. The proposed split between Connect a self-hosted relay and Sign in with Builderlab would have made the correct path immediately obvious. |
Summary
buzz-git-datato uid 1000 so the non-root relay can write pack-cache (Freshdeploy/composestack: relay crash-loops on/data/git/.pack-cache(root-owned named volume vs non-root uid 1000) #2814).buzz-admin generate-key: print nsec/npub for desktop paste (buzz-admin generate-keyemits a hex secret that desktop onboarding rejects (expectsnsec1) #2815 admin half).Hex secret import for desktop lives in #4504 (dropped from this tip on rebase to avoid duplicating it).
Test plan
buzz-admin generate-keyprints nsec1… / npub1…