Docs

Onboarding Customers

Once you've released your app, onboarding a customer is two steps:

  1. You create a deployment group and mint a deployment link.
  2. The customer's admin opens the link in their browser and picks a deployment method.

After that, the admin is done. Updates roll out automatically on every alien release.

Create a deployment group

A deployment group is one customer. It can hold a single deployment or many (prod, staging, regional). All deployments in the group share the same release stream and configuration.

alien onboard acme-corp
✓ Ready to deploy.
Customer    acme-corp

Share with the customer's admin:
  https://alien.dev/deploy/#dg_abc123...

The link is short-lived — mint a fresh one any time with alien onboard acme-corp. If the group already exists, re-running fails with a name conflict; mint a new token from the existing group in the dashboard.

In the dashboard:

  1. Open DeploymentsNew deploymentGenerate deployment link
  2. Enter a name (e.g. acme-corp)
  3. Copy the deployment link and send it to the customer

The same link works from both flows.

What the customer sees

The deployment link opens a white-labeled portal branded for your project — your name, logo, and accent color (customize in the Portal Studio). Alien generates a project-specific CLI, Terraform module, CloudFormation template, and Helm chart from your stack — the portal presents them as four deployment methods the admin can pick from.

MethodBest for
CLI — a project-branded binary (e.g. acme-deploy)One-command setup; smallest blast radius
TerraformCustomer's platform team already uses Terraform
CloudFormationOne-click AWS launch via the AWS console
HelmInstalling into an existing Kubernetes cluster

All four produce the same result: the isolated area, the deployment identity, and the initial deployment of your code. The portal renders project-branded instructions and the exact commands to run.

Providing stack inputs

If your alien.ts declares stack inputs, Alien collects them before setup:

  • Developer-provided inputs are filled in when you create the deployment link.
  • Deployer-provided inputs are filled in by the customer's admin in the portal or generated setup artifact.
  • Platform-scoped inputs are collected only when the deployment link allows that platform.

CLI example:

alien onboard acme-corp \
  --platforms aws \
  --secret-input controlPlaneApiKey=sk_live_... \
  --input deploymentTier=enterprise

In the dashboard, the same fields appear in Deployments → New deployment → Generate deployment link with labels, descriptions, placeholders, and validation from alien.ts.

Secrets are redacted after submission. Required deployer-provided inputs are not shown to the customer unless you explicitly declare them with providedBy: "deployer".

Watch it come up

Open the Deployments tab in the dashboard, or from the CLI:

alien deployments ls
NAME          GROUP       PLATFORM  STATUS    LAST SEEN
acme-prod     acme-corp   aws       running   2m ago

Once the status is running, the deployment is live in the customer's cloud.

Advanced environment variables

Prefer stack inputs for values a person must provide. Raw environment variables remain available as an advanced override when you need to inject a value that is not part of the stack's public setup contract:

alien onboard acme-corp \
  --env LOG_LEVEL=info \
  --secret OPENAI_API_KEY=sk-...

In the dashboard, configure the same under Deployments → New deployment.

Multiple deployments per customer

A deployment group can hold many deployments — useful when a single customer runs production, staging, and regional instances. The admin runs the same setup once per environment, each with its own --name:

acme-deploy deploy --token <token> --name acme-prod    --platform aws --region us-east-1
acme-deploy deploy --token <token> --name acme-staging --platform aws --region us-east-1
acme-deploy deploy --token <token> --name acme-eu      --platform aws --region eu-west-1

All three show up in the same group in the dashboard.

Pre-baking advanced env vars per environment

Target specific deployments using :targets syntax:

alien onboard acme-corp \
  --env LOG_LEVEL=debug:acme-staging \
  --env LOG_LEVEL=info:acme-prod,acme-eu

Troubleshooting

Deployment links are short-lived. Mint a fresh one with alien onboard <name>, or open the deployment group in the dashboard and generate a new token.

Deployment stuck in "provisioning"

Check the deployment detail page in the dashboard — it shows live resource-by-resource status with any errors from the cloud provider.

Customer's admin says the cloud command failed

Cloud errors usually come from missing permissions in the credentials the admin used during setup. The portal shows the minimum required role at the top of each method's instructions.

On this page