# Quickstart

> Deploy your first app to Watasu in five minutes.

This guide takes you from nothing to a running app on a public URL.

You'll need:

* a Watasu account
* a Git repository with an app you'd like to deploy (any language with a buildpack, or anything with a `Dockerfile`)

## 1. Install the CLI

```bash
curl -fsSL https://watasuio.github.io/watasu-cli/install.sh | bash
```

On Windows:

```powershell
irm https://watasuio.github.io/watasu-cli/install.ps1 | iex
```

Homebrew works too — see [Install the CLI](https://docs.watasu.io/cli/install.md) for all options.

## 2. Log in

```bash
watasu login
```

The CLI opens a browser, you authenticate, and credentials are stored locally for both API calls and Git pushes.

## 3. Create an app

From inside your Git repository:

```bash
watasu create my-first-app
```

The output gives you:

* a managed URL like `https://my-first-app.watasuhost.com`
* a Git remote named `watasu` pointing at `git.watasu.io`

If you'd rather skip the local remote, pass `--no-remote`.

## 4. Deploy

```bash
git push watasu main
```

Watasu stages your source, builds an image (using your `Dockerfile` if there is one, otherwise Cloud Native Buildpacks), creates a release, and rolls it out. Build and deploy output streams back to your terminal.

When the deploy finishes, open the app URL.

## 5. Set a config var

Most real apps need at least one secret or setting:

```bash
watasu config:set SECRET_KEY_BASE=replace-me --app my-first-app
```

Setting a config var triggers a new release. Your app restarts with the new value.

## 6. Read the logs

```bash
watasu logs --app my-first-app
```

Add `--tail` to stream continuously. This is your first stop whenever something doesn't look right after a deploy.

## 7. Attach a database

```bash
watasu addons:create postgresql --app my-first-app
```

Wait until it's ready:

```bash
watasu pg:wait --app my-first-app
```

Your app receives `DATABASE_URL` (and `PGHOST`, `PGPORT`, `PGDATABASE`, `PGUSER`, `PGPASSWORD`) automatically and restarts with the new environment.

## 8. Add your own domain

```bash
watasu domains:add www.example.com --app my-first-app
```

Watasu prints the DNS target to point at. Add it at your DNS provider, then:

```bash
watasu domains:wait www.example.com --app my-first-app
```

TLS is provisioned automatically once the domain verifies.

## You're live

That's the whole loop: create, push, configure, attach, observe.

Next steps depending on what you want to do:

* **Understand the model** → [Core Concepts](https://docs.watasu.io/getting-started/concepts.md)
* **Set up GitHub auto-deploy and review apps** → [Connect GitHub](https://docs.watasu.io/workflows/connect-github.md)
* **Add a worker process** → [Processes and Scaling](https://docs.watasu.io/apps/processes-and-scaling.md)
* **See dashboards in Grafana** → [Observability Overview](https://docs.watasu.io/observability/overview.md)

[View this page on the web](https://docs.watasu.io/getting-started/quickstart/)
