Skip to content
Built with

First deployment ​

Build & Deploy

Open your platform's API URL in a browser to see its welcome page, CLI connection steps and a link to the admin dashboard. Share this URL with teammates so they can connect.

On this pageCheck the platform is running · Connect the CLI · Deploy your first app to it

Requires: login or token

void platform auth login opens a browser to sign in. Deploy tokens are secrets.

This step checks the new platform and signs you in with the administrator login chosen during setup.

sh
void platform status
void platform auth login

Example output: The platform status, then a browser sign-in.

sh
void platform system health

Example output: The platform's health checks.

Administrator login is separate from deploy credentials. This step connects a new or unlinked app to the API URL and deploys your first project.

sh
void connect void-company-api.example.workers.dev
void deploy --platform void --project my-first-app

Example output: The connection saved, then deploy progress and the project URL.

void connect validates the platform and signs you in when needed. Confirm project creation when deploy asks. To use a project that already exists, run void project link instead. An app linked to another platform keeps its destination. Use a fresh app directory for your first test.

Once accepted by the platform, a deployment continues independently of the CLI connection. The CLI reconnects automatically after a connection failure. Use void project status to inspect a deployment after closing the CLI, or void project cancel to request cancellation.

The CLI stores login credentials in your system keychain, separately for each platform URL. With no URL, void connect offers Cloudflare or an SDK platform; void connect --platform void offers saved platforms and an option to enter another URL.

For CI, create a bounded, project-scoped deploy credential while signed in as the project owner:

sh
void project token create --name ci --expires-in 30

Example output: The new deploy token. It is shown once, so store it safely.

Store the printed VOID_TOKEN and VOID_API_URL in the CI secret manager, then run void connect "$VOID_API_URL" --no-login before deploying in each fresh CI environment. Project files do not replace this connection step. CI cannot answer the project prompt, so choose the project before void deploy: set VOID_PROJECT, pass --project <slug>, or commit .void/project.json from void project link. New apps ignore .void in .gitignore; to commit the link, replace that line with .void/* and !.void/project.json. Rotate with void project token renew <id> and revoke with void project token revoke <id>. A human login token is not a CI credential.

If Cloudflare Access protects the platform, Access proof and the project credential are both required; the service token does not grant SDK user or operator authority. A deploy that uses prerendering or remote bindings calls both the API and proxy, so store VOID_ACCESS_CREDENTIALS in the CI secret manager with entries for both exact HTTPS origins. Include both entries even when the same admitted service-token pair is used for both origins:

json
{
  "https://void-company-api.example.workers.dev": {
    "CF_ACCESS_CLIENT_ID": "<service-token client ID>",
    "CF_ACCESS_CLIENT_SECRET": "<service-token client secret>"
  },
  "https://void-company-proxy.example.workers.dev": {
    "CF_ACCESS_CLIENT_ID": "<service-token client ID>",
    "CF_ACCESS_CLIENT_SECRET": "<service-token client secret>"
  }
}

VOID_ACCESS_ORIGIN can scope credentials to one origin only; setting it to the API origin does not authorize proxy requests.

This step inspects connections and installations.

sh
void platform list
void platform use [id]

Example output: Your connections, then the new default.

sh
void platform status [id]

Example output: The platform's status.

Managing access ​

This step signs in as the first administrator and adds a GitHub teammate to the signup allowlist.

sh
void platform auth login
void platform signup allow github teammate

Example output: A browser sign-in, then the allowlist change.

The SDK shows the change and asks you to confirm. After that, teammate can connect to the API URL and sign in with GitHub.

To allow email addresses, domains, or OIDC identities, or to open signup, see Giving People Access.

Administrator sessions last one hour. Use it to inspect users, projects, logs, and platform health. The Platform Administration guide walks through those workflows, previews, and automation. You can also open <API origin>/admin/login to use the browser admin UI.

Protect project hostnames with Zero Trust ​

After installation, an administrator can require Cloudflare Access on new project hostnames while allowing each project owner or project administrator to opt out. This is independent of Access login and protection for the platform API itself, and it needs its own Cloudflare API token. See Project Zero Trust for the requirements, setup command, and recovery.

Next steps ​

implemented.stream AI