> ## Documentation Index
> Fetch the complete documentation index at: https://docs.servers.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Getting started

> Go from nothing to a live Ktor server in about five minutes.

## What you need

* A Gradle project with the Gradle wrapper (`gradlew`) at its root. The platform builds with your wrapper, so it uses your Gradle version.
* At least one target the platform can deploy: a Ktor server, a web app, an Android app or a Compose Desktop app. See [Project structure](https://docs.servers.dev/project-structure.md).
* An account. The platform is in early access; ask for an invite on the home page.

## Deploy your first app

**1. Install the CLI**

The `atoll` CLI is a single native binary for Linux, macOS and Windows. There is no download yet, so build it from the platform's source repository with the link task for your system:

> [tab] Linux
>
> ```sh theme={null}
> ./gradlew :cli:linkReleaseExecutableLinuxX64     # x64
> ./gradlew :cli:linkReleaseExecutableLinuxArm64   # arm64
> ```

> [tab] macOS
>
> ```sh theme={null}
> ./gradlew :cli:linkReleaseExecutableMacosArm64   # Apple silicon, only on a Mac
> ```

> [tab] Windows
>
> ```sh theme={null}
> ./gradlew :cli:linkReleaseExecutableMingwX64
> ```

The binary ends up in `cli/build/bin/<target>/releaseExecutable/`: `atoll.kexe` on Linux and macOS, `atoll.exe` on Windows. Rename it to `atoll` (or keep `atoll.exe`), put it on your `PATH`, and check that it runs:

```sh theme={null}
atoll --version
```

**2. Sign in**

Sign in to your server:

```sh theme={null}
atoll login --server https://atoll.example.com
```

The CLI prints a URL and a short code, and opens the panel in your browser. Check that the code matches and approve the sign-in. The CLI saves a token and remembers the server, so later commands need neither. `atoll whoami` shows who you are signed in as, and `atoll status` checks that the server answers.

> [!TIP]
>
> In CI, skip `atoll login` and pass a personal access token instead. See [Deploying from CI](https://docs.servers.dev/deploy/cli.md#deploying-from-ci).

**3. Deploy**

Run `atoll deploy` in the root of your project:

```sh theme={null}
cd my-app
atoll deploy
```

The CLI packages your source, uploads it and prints the build log as it runs. At the end it prints one line per target:

```text theme={null}
Deployment 3c9e41a0-5d2b-4f7e-9a61-0b8d2c7e4f15 READY

  KTOR  :server  READY  primary  https://my-app.atoll.app/
```

Open the URL. Your server is live.

## Naming the project

The project is named after the directory. If the directory name is not a valid project name, pass one with `--name`:

```sh theme={null}
atoll deploy --name my-app
```

A new project goes to your personal org. To put it in a team's org, pass `--org <slug>` or pick a default with `atoll orgs switch <slug>`.

## Next steps

> [card] [Add more targets](https://docs.servers.dev/project-structure.md)
>
> Add a web app or an Android app to the same build. The next deploy picks them up.

> [card] [Set environment variables](https://docs.servers.dev/configure/environment-variables.md)
>
> Give your server its configuration and secrets.

> [card] [Link a GitHub repository](https://docs.servers.dev/deploy/git.md)
>
> Every push deploys and every pull request gets a preview.

> [card] [Invite your team](https://docs.servers.dev/teams/teams.md)
>
> Add members to an org and give them roles.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.