Bring people onto a server with single-use invite codes instead of handing out tokens. An invite assigns groups, so a new member immediately follows the right channels.
An invite grants access through the groups it carries, so create the groups and give them channels before inviting anyone (see Users, roles, and groups):
nightship group create testers --server https://builds.example.com
nightship group assign-channel testers latest --server https://builds.example.com
nightship invite create teammate --groups testers --days 7 \
--server https://builds.example.com
The invite is single-use and expires after --days. Hand
the printed code to the person.
They redeem it in the desktop app (Join with invite…) or from the CLI, and their client starts following the channels their groups grant — the other side of this is Join a server with an invite:
nightship join https://builds.example.com <code> --install-root <path>
nightship invite revoke. Lost the code? Re-issue invite
in Admin → Invites revokes the old one and shows a fresh code.
Someone who knows your server’s URL but has no invite can ask for one:
in the app, Add server → Request access… (or
nightship request-access <url> --name jane --email jane@example.com).
The request shows up at the top of Admin → Invites. Approve mints
the invite and opens a mail to them with the code — the server never
sends mail itself; Decline removes the request quietly. From the CLI:
nightship requests, nightship request approve <id>.