Skip to content

Create a Hosted vault

Use this path when you want the full KB-1 Cloud experience and you do not want to operate the daemon yourself. You still log into KB-1 Cloud, join an organization, and open the normal app surface. The difference is that KB-1 runs the vault engine for that organization in a hosted environment.

If you want the daemon to live on your own machine, use Connect a self-hosted vault to Cloud instead.

  • Cloud login, organization membership, signed entry, presence, and team access are handled by KB-1 Cloud.
  • The vault engine is operated by KB-1 for a cloud_hosted organization.
  • Durable vault content is served by the hosted daemon path, not by a second cloud-only vault implementation.

For launch users:

  • A KB-1 Cloud account.
  • An organization whose vault home is Hosted.
  • Permission to create vaults in that organization.

For local verification from this repository:

  • Node 24 or newer, as required by the KB-1 Cloud workspace.
  • pnpm through Corepack.
  • Docker, because the local managed-daemon provider uses Docker to emulate the Hosted runtime. Staging and production use the configured managed-daemon provider instead.
  • The daemon submodule initialized with git submodule update --init.
  1. Sign in to KB-1 Cloud.
  2. Open the KB-1 app.
  3. Select a Hosted organization. Hosted organizations create vaults in the KB-1 operated daemon path.
  4. Use the new-vault action in the file rail.
  5. Enter a vault name, then create it.
  6. Wait for the vault to open. The first open may include a hosted wake.

The browser route has this shape:

/app/org/<org-slug>/vault/<vault-slug>

The vault slug is the daemon’s canonical vault id. The organization slug chooses which Cloud organization and hosted daemon the app enters.

From the kb-1-cloud repository:

Terminal window
git submodule update --init
pnpm install
pnpm bootstrap:worktree --force-env
pm2 start ecosystem.config.js
curl http://127.0.0.1:9988/api/health
pnpm --filter @kb-1-cloud/api seed:dev

The health check should return a JSON body like:

{"ok":true,"env":"development"}

The seed creates a demo Hosted organization named demo-cloud-hosted and a demo user:

marcus@example.test / dev-password-123

Open the local app and sign in:

http://127.0.0.1:9987/sign-in

Then open the seeded Hosted vault:

http://127.0.0.1:9987/app/org/demo-cloud-hosted/vault/demo-vault

If the seeded Hosted vault was not created because the local hosted daemon was not ready yet, create it from the app after the stack is running. The UI calls this Cloud API behind the scenes:

POST /api/orgs/<org-id>/vaults/hosted

With a body shaped like:

{"name":"Demo Vault"}

A successful create returns 201 with the daemon-created vault id:

{"vault":{"id":"demo-vault","name":"Demo Vault"}}
  • The vault appears under the Hosted organization in the app rail.
  • Opening the vault lands on /app/org/<org-slug>/vault/<vault-slug>.
  • You can create or edit a note.
  • Reloading the vault still shows the edit.
  • A teammate who belongs to the same organization can enter the same vault through Cloud login.