App quickstart

App quickstart

This quickstart deploys an app to Lizard in a few minutes. Install Lizard CLI: the installer signs you in and offers the 7-day Pro trial. Then run lizard add -r owner/repo for a GitHub repository or lizard up for a local folder. Lizard builds the app on its servers, with no local Docker, and gives it an HTTPS URL on onlizard.com. Lizard creates your account the first time you sign in.

1. Install the CLI

On macOS or Linux, run the install script:

curl -fsSL https://lizard.build/install.sh | bash

It puts the lizard binary in ~/.lizard/bin, adds that folder to your PATH in ~/.zshrc or ~/.bashrc, and links lizard into a folder that is already on your PATH, so it works in this terminal right away. The binary updates itself from then on, except in CI. If the script says lizard may not be found, open a new terminal. Check the version:

lizard --version

On Windows, run this in PowerShell:

irm https://lizard.build/api/cli/install.ps1 | iex

Both install scripts end by running lizard login, which does steps 2 and 3 for you: it signs you in and offers the Pro trial. Set LIZARD_NO_LOGIN=1 to skip it; in CI the scripts skip it on their own.

Or install from npm (needs Node.js 20 or later). An npm install does not sign you in, so go on with step 2:

npm install -g @lizard-build/cli

Don’t use npx. Always use the globally installed lizard binary. Running npx @lizard-build/cli downloads a temporary copy whose version may differ from the platform. To upgrade an npm install later, run npm install -g @lizard-build/cli@latest.

Permission errors (EACCES)? Don’t use sudo. Use the install script above, which needs no admin rights, or point npm at a user-owned prefix:

mkdir -p ~/.npm-global
npm config set prefix ~/.npm-global
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc && source ~/.zshrc
npm install -g @lizard-build/cli

2. Log in

Skip this step if the install script signed you in. Otherwise run:

lizard login

It asks whether you sign in with GitHub or Google, opens that page in your browser and waits until you approve. If you already have an account, pick the method you signed up with: the other one opens a second, empty account unless both share a verified email. --github or --google skips the question. On a machine that is already signed in, lizard login shows the account instead, so it is safe to run again.

You can also skip lizard login: any command run at a terminal signs you in the same way first, then carries on.

In CI or other non-interactive environments, authenticate with a token instead:

export LIZARD_TOKEN=liz_xxx
# or
lizard login --token liz_xxx

API keys start with liz_. Create one with lizard keys create <name>. LIZARD_API_KEY works in place of LIZARD_TOKEN. lizard login --token-stdin reads the key from a pipe, which keeps it out of your shell history.

Check who you are at any time:

lizard whoami

3. Start the Pro trial

A new account has no plan, and deploys need one. Once you are signed in, lizard login offers the 7-day Pro trial. Say yes, and it opens Stripe Checkout, where you add a card. The trial includes $5 of usage, and nothing is charged until it ends. An account that has had its trial is offered Pro at $19 a month instead.

If you said no, start it later:

lizard billing start

Until a plan starts, creating anything returns HTTP 402 with a Checkout link. See Billing and lizard billing.

4. Deploy

Pick the path that matches where your code lives.

If your code is on GitHub, create a service straight from the repo. Lizard clones it, detects the stack and starts the first build:

lizard add -r your-org/your-app

The command returns as soon as the service exists; the build carries on. Step 5 shows how to follow it and find the URL.

For a private repo, and for pushes to the tracked branch to redeploy the app, connect the Lizard GitHub App first with lizard git:

lizard git connect

Option B — Deploy local code

From inside your project directory, upload and deploy the current folder (respects .gitignore):

lizard up

The first time, it asks for a service name; the folder name is the default. Then it follows the build and prints the URL, like https://your-app-x1y2z.onlizard.com, once the app is live.

If the folder isn’t linked to a project yet, lizard add and lizard up use your default project and say so. That is the oldest project in your personal workspace; a new account gets one at sign-up. lizard up also links the folder to it, so the next lizard up updates the same service. To deploy into another project, run lizard init --name my-project first. Do that in CI as well, so the deploy lands where you expect.

Lizard detects most stacks on its own. For the exact build command, start command and port of your framework, see the guide for Next.js, React, Vue, Astro, SvelteKit, Node.js, Django, FastAPI, Rails or Go. An app with its own Dockerfile follows Deploy with a Dockerfile.

5. Watch it build and run

lizard ps               # services in the project, with status + URL
lizard logs             # stream runtime logs (Ctrl+C to stop)
lizard logs --tail 100  # print the last 100 lines and exit
lizard logs --build     # the most recent build's logs
lizard open             # open the project in the dashboard

lizard open shows the same project in the dashboard. For metrics, cost and deploy history, see Observability.

6. Add a database (optional)

Provision Managed Postgres. Every service in the project gets its public DATABASE_URL on the next deploy; to connect over the private network instead, reference it from your service:

lizard add postgres
lizard secrets set DATABASE_URL='${{postgres.DATABASE_PRIVATE_URL}}' --service your-app
lizard redeploy --service your-app

Lizard resolves ${{postgres.DATABASE_PRIVATE_URL}} at deploy time so the service connects over the project’s private network. It matches the addon’s current name, so update the reference if you rename the addon. Credentials do not rotate on their own; a service picks up new values on its next deploy. See Managed Addons.

Next steps

Hosting costs

Pro costs $19 a month with $19 of usage included. Pro 5x ($99) and Pro 20x ($499) include usage equal to their price and raise your limits. Pro 5x and Pro 20x have no limit on sandbox starts. Usage above that is pay as you go at the published rates. Only Pro has a trial: 7 days with $5 of usage; you add a card to start it. See Billing and pricing, and check your limits before deploying.

Updated