Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

organize self-service invitation doc #750

Merged
merged 2 commits into from
Sep 26, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 1 addition & 44 deletions docs/getting-started.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -96,49 +96,6 @@ If [sharing privately](./concepts/sharing-private.md), only users with the share
</div>
</AssetsProvider>

## Generating an Invitation

:::note
If not using `zrok.io` (zrok-as-a-service), you must configure the `zrok` command to use your instance. See the [instance configuration guide](/guides/self-hosting/instance-configuration.mdx) in the self-hosting section for details.
:::

Invite yourself to `zrok` by running the `zrok invite` command:

```text
zrok invite
```

```buttonless title="Output"
enter and confirm your email address...

> [email protected]
> [email protected]

[ Submit ]

invitation sent to '[email protected]'!
```

The `zrok invite` command presents a small form that allows you to enter (and then confirm) your email address. Tabbing to the `[ Submit ]` button will send the request to your configured `zrok` service.

Next, check the email where you sent the invite. You should receive a message asking you to click a link to create your `zrok` account. When you click that link, you will be brought to a web page that will allow you to set a password for your new account:

![Enter a Password](images/zrok_verify.png)

Enter a password and its confirmation, and click the `Register Account` button. You'll see the following:

![Successful Registration](images/zrok_registration_success.png)

For now, we'll ignore the "enable your shell for zrok" section. Just click the `zrok web portal` link:

![Web Login](images/zrok_web_login.png)

After clicking the `Log In` button, you'll be brought into the `zrok` _web console_:

![Web Console; Empty](images/zrok_web_console_empty.png)

Congratulations! Your `zrok` account is ready to go!

## Enabling Your zrok Environment

A zrok environment usually refers to an enabled device where shares and accesses can be created, .e.g., `~/.zrok` on a Unix machine. It can be a specific user's environment or a system-wide agent's environment owned by the administrator.
Expand Down Expand Up @@ -371,7 +328,7 @@ Here's a quick review of the `zrok` mental model and the vocabulary.

You create an _account_ with a `zrok` _instance_. Your account is identified by a username and a password, which you use to log into the _web console_. Your account also has a _secret token_, which you will use to authenticate from the `zrok` command-line to interact with the _instance_.

You create a new _account_ with a `zrok` _instance_ through the `zrok invite` command.
You create a new _account_ with NetFoundry's `zrok` _instance_ by subscribing in [myzrok.io](https://myzrok.io) or in a self-hosted `zrok` _instance_ by running [the `zrok invite` command](/guides/self-hosting/self-service-invite.mdx).

### Environment

Expand Down
54 changes: 54 additions & 0 deletions docs/guides/self-hosting/self-service-invite.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
title: Invitations
---

This is how to set up self-service invitations for your users to get an account on your self-hosted zrok instance.

## Overview

- You can create user accounts directly with the `zrok admin` CLI or API.
- You can welcome users to invite themselves via email.
- You can generate invitation tokens if you want to restrict self-service invitations.
- To enable self-service invitations you must also configure the controller to send email.

## The Self-Service User Experience

This is what your users will do.

```bash
zrok invite
```

```buttonless title="Output"
enter and confirm your email address...

> [email protected]
> [email protected]

[ Submit ]

invitation sent to '[email protected]'!
```

## How it Works

The `zrok invite` command presents a small form that allows you to enter (and then confirm) your email address. Tabbing to the `[ Submit ]` button will start the invitation process.

Next, check the email where you sent the invite. You should receive a message asking you to click a link to create your `zrok` account. When you click that link, you will be brought to a web page that will allow you to set a password for your new account.

![Enter a Password](/zrok_verify.png)

Enter a password and its confirmation, and click the `Register Account` button. You'll see the following:

![Successful Registration](/zrok_registration_success.png)

For now, we'll ignore the "enable your shell for zrok" section. Just click the `zrok web portal` link:

![Web Login](/zrok_web_login.png)

After clicking the `Log In` button, you'll be brought into the `zrok` _web console_:

![Web Console; Empty](/zrok_web_console_empty.png)

Congratulations! Your `zrok` account is ready to go!