Koo Docs
View as Markdown

Deploy with koo up

koo up deploys the directory on your machine: it packs your code into an archive, uploads it, builds it on Koo, and rolls it out. No git remote and no registry needed.

First run

  1. Install the Koo CLI.

  2. Sign in:

    bash
    koo login
  3. From your project directory, deploy:

    bash
    koo up

If the directory isn't linked to a service yet, koo up offers to pick — or create — the account, project, environment, and service to deploy to, then records that link in a koo.json file next to your code. Every later koo up from the directory deploys the same service; commit koo.json to share the link with your team.

What koo up does

  1. Packs the directory into an archive. .gitignore and .kooignore are honored with gitignore rules, .dockerignore with Docker's rules — so the packed context matches a local docker build — and .git and koo.json are always excluded.
  2. Uploads the archive and starts a build on Koo.
  3. Rolls the result out as a new deployment, streaming progress as it goes: the pipeline statuses, the live build stage, then the wait for the service to come up.
  4. Prints the service's URL once it is online.

The command waits by default. Pass --detach to start the deploy and return immediately, then check on it later with koo status:

bash
koo up --detach

Redeploying

A service deployed this way ships only when you run koo up — creating it stages nothing to build, and there is no branch or registry for Koo to watch. To release a new version, run koo up again: each run creates the next numbered version, and rollback works like any other deploy.

koo up needs a fully set-up account. If you haven't finished setting yours up in the console — signing in, claiming a handle and verifying your phone — the CLI stops with onboarding_incomplete and the message "Finish setting up your account in the Koo console (verify your phone) before deploying." Finish setup in the console, then run koo up again.