Skip to content

Offer Get your team started or Join your team on first run #549

Closed

Description

@iamnbutler

Today a new install lands on "Open a project". Nothing asks whether you're starting a team or joining one. Setting up the team's services takes wrangler or celld commands from a checkout (docs/setup.md), and joining takes a URL and a secret sent by hand (#538).

Proposal: on first run, Ace offers a fork.

  • Get your team started
  • Join your team (designed separately)

Get your team started

  1. Directory. Choose where the team's directory runs, or skip it:
    • Peer to peer only. There's no directory. Teammates on the tailnet see each other's channels only while both hosts are awake, with no shares, lobbies or presence. Say plainly what's lost.
    • Hosted directory (recommended). Pick a provider with guided setup (Cloudflare and Fly.io as reference implementations), or host it yourself on celld or any compatible runtime.
  2. Remote channels (optional). Choose whether to enable hosted channels and cloud workspaces, with the same two options: a provider with guided setup, or host it yourself.
  3. Set up. Per-platform instructions, automated where we can: create the services, generate and store ACE_SECRET, set TAILNET, name HOSTED/APP/COMPUTE, and join this host. It ends with what to send teammates.

Open questions

  • What does a peer-only teammate need? Peers already find each other through the tailnet with no code (see Find teammates' hosts on other ports, such as stable and Canary #542 for the same-port limit). A code would only be needed if peer-only mode adds something the tailnet doesn't give. Per docs/terms.md, the tailnet is the only authority for team membership and Ace has no invitations, so any code must not become a second membership system.
  • When does the fork appear? On first run only, or whenever this host has no directory? And what if peers on the tailnet already have one, which suggests joining?
  • Fly.io needs a deployment of its own: celld on a Fly Machine with a bucket for the directory and hosted channels. Compute today needs Cloudflare Containers.
  • Automation. How much can Ace do itself (wrangler with the person's login, flyctl), and how much stays instructions to copy?

Related: #215 (first-run teaching), #252 (directory UI), #511 (one team credential).

Activity

  1. iamnbutler commented on Oct 22, 2026

    @iamnbutler
    ContributorAuthor

    Done in #553 (with #552): first run opens team setup with Get your team started, Join your team, or Just me for now. It deploys the directory (and optionally hosted channels) to Cloudflare from the app. Left out: Fly.io deploys from the app (it still shows #552's script), and cloud workspaces are a disabled Soon row.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions