Tabs & Spaces Developers

Self-hosting

First-run setup

A new deployment has no accounts yet. The first person to finish setup becomes its deployment administrator, so setup is protected by a one-time link that only whoever runs the server can see.

Until setup is done, the API prints the link in its logs each time it starts:

text
  First-run setup: open https://chat.example.com/setup?token=…

Where to look:

Installed withRun
Docker Composedocker compose logs api, or the end of setup.sh's output
Fly.ioflyctl logs -a <your API app> --no-tail | grep "First-run setup"
Anything elseThe API container's logs

Treat it like a password: anyone with it can create the administrator account. It stops working once setup is done. To choose the token yourself (for an automated install), set SETUP_TOKEN to at least 16 characters before the first start.

Opening the deployment without the link shows this instead:

The setup page without the link: "Open the setup link. For security, setup needs the one-time link printed in the API server's logs when it starts."
Without the link, setup asks for it.

2. Name the deployment and create your account

The link opens Set up Tabs & Spaces:

The setup form: deployment name, who can sign up, and the first account's name, email and password.
The first account becomes the deployment's administrator.
FieldWhat it is
Deployment nameYour organisation or team, shown across the deployment. You can change it later
Who can sign upAnyone who can reach the deployment, or Invite only: people need an invitation from a workspace. You can change it later
Name, Email, PasswordYour account: the deployment's administrator. The password needs at least 10 characters

Choose Finish setup. You're signed in, and a confirmation email is sent to your address (it goes through your SMTP service: a good first check that email works).

3. Create your first workspace

Create your first workspace: its name and address, and where its data and files live.
Each workspace is home for one team: its people, agents, spaces and data.
ChoiceWhat it means
Start fresh or Import an exportA new, empty workspace, or one made from an export of another workspace (from this deployment or another)
Workspace nameIts name, which also makes its address (/w/acme-studio)
Where its data livesOn this deployment (its own database on your MongoDB), or In my own MongoDB
Where its files liveOn this deployment (your bucket), or In my own bucket: any S3-compatible storage

Pick On this deployment for both unless the workspace's owner wants its data on infrastructure they run. Choose Create workspace.

4. You're in

The new workspace's home: its spaces (My Space and General), and an invitation to bring the team in.
Every workspace starts with a General space for everyone, and a private space of your own.

The banner at the top stays until you confirm your email address from the message in your inbox.

From here:

  • Invite people from the home page, or Settings → Members.
  • Set up agents in Settings → Agents: connect the deployment's Gateway, or the workspace's own. See Agents.
  • Check the deployment in Deployment settings (next).

5. Deployment settings

As the administrator, you'll find Deployment settings in your account menu (your name, bottom left), at /w/<workspace>/deployment:

Deployment settings: the name, who can sign up, who can create workspaces, multiple workspaces, workspaces on their own infrastructure, and the service status.
Service status shows the API, database and storage are answering.
SettingWhat it controls
NameThe deployment's name
Who can sign upAnyone, or invite only
Who can create workspacesEveryone, or administrators only
Allow multiple workspacesOff: the deployment holds one workspace
Allow workspaces on their own infrastructureWhether new workspaces may keep data in their own MongoDB and bucket
Service statusWhether the API, database and storage answer, and how fast

Its other tabs, Billing, Requests, Support and Audit log, are covered in Running your deployment.

If something's wrong

What you seeWhat to check
"This setup link isn't valid"The link was cut short when copied: copy the whole line from the logs
"This deployment is already set up. Sign in instead."Someone finished setup. Sign in with that account
No confirmation emailThe SMTP_* settings and MAIL_FROM. With the bundled Mailpit, the email is at http://localhost:8025
Service status shows the database or storage in redMONGODB_URI, or the S3_* settings: see Health