# First deploy in a few minutes

Three complete paths get you there. Pick one. They all end in the same place:

- [Deploy a template](#deploy-a-template-via-console): You are starting from scratch and want a ready-made project.
- [Import from GitHub](#import-a-project-from-github): Your project already lives in a GitHub repository.
- [Deploy with CLI](#deploy-with-azion-cli): Your project is on your machine and you prefer the terminal.

> **Tip**
>
> Not sure which one? Take the template path: it needs no local tooling, and everything you learn on it applies to the other two.

## Before you start

All you need is an Azion account. You can create one for free, and it does not ask for a credit card. Anything path-specific is listed in the path itself.

## Deploy a template via Console

Templates are ready-made projects (e-commerce, blogs, APIs, full-stack SSR) that go live in a few clicks. You do not need any local tooling.

> **Note**
>
> Some templates are integrated with third-party services, so you may need to create accounts, generate tokens, or activate Azion products before deploying. Templates integrated with GitHub ask you to connect your account: select Connect with GitHub when prompted and confirm the connection in the window that opens. Each template's guide lists its specific prerequisites.

1. **Access Azion Console.**
2. **Select + Create on the homepage.**
3. **In the modal, select Templates.**
4. **Browse and pick the one you want to start with.**
5. **Fill in the configuration page.**
6. **Select Deploy, in the bottom-right corner.**

Follow the deploy through the logs window. When it finishes, the page shows your application's name, its deploy logs, and its Azion domain. Some templates also create a function and apply pre-defined configurations to optimize your application's performance. The template's guide lists what is included.

### Test it

Copy the Azion domain from the confirmation page:

```bash
curl -I https://<your-azion-domain>
# HTTP/2 200
```

Open the same URL in the browser to see your application running.

> **Note**
>
> New URLs can take a few minutes to propagate to Azion's data centers. If you get an error right after deploying, wait a moment and try again.

## Import a project from GitHub

> **Info**
>
> You need a GitHub account and a repository using one of the supported frameworks.

1. **In Azion Console, select + Create.**

2. **Select Import from Git.**

3. **Connect the Git account that owns the repository.**

4. **Pick the repository to import.**

5. **Name the application and check the build and deploy commands.**

   Azion reads the commands from the repository, so both arrive filled in for a project it recognises — change them only if your build differs. The name becomes part of the deployed URL.

6. **Leave Protect with Azion Firewall off, or turn it on to deploy a firewall alongside the application.**

7. **Select Create and deploy, then follow the logs until the Azion domain shows up.**

### Test it

```bash
curl -I https://<your-azion-domain>
# HTTP/2 200
```

Open the Azion domain in the browser to see your application running. If you get an error right away, wait a few minutes: new URLs take a moment to propagate to Azion's data centers.

## Deploy with Azion CLI

> **Info**
>
> You need a local project that uses one of the supported frameworks, with its dependencies installed, or you create one from a template in step 3.

**AI Assistant**

```text
Set up the Azion CLI, log in, link this project to my Azion account or initialize one from a template, deploy it, and print the Azion domain once it answers 200.
```

1. **Set up the Azion CLI**

   ```bash
   curl -fsSL https://cli.azion.app/install.sh | bash
   ```

2. **Log in**

   ```bash
   azion login
   ```

   The CLI saves a personal token locally, which authorizes the commands that follow.

3. **Initialize or link the project**

   To start from a template, run the command where you want the project folder created. It asks for a preset, which is the framework, then for a template, and creates a folder with the project's name; accept installing the dependencies:

   ```bash
   azion init
   ```

   To use a project you already have, run the command in its root folder. It asks you to confirm the link, to accept or change the suggested application name, and to pick the preset that matches your framework; the `.gitignore` entry and the GitHub Actions workflow it offers are optional:

   ```bash
   azion link
   ```

   When either command asks whether to deploy, answer no: the next step does it.

4. **Deploy**

   ```bash
   azion deploy
   ```

   The CLI builds the project, uploads it, creates the application with its domain, and prints the domain at the end.

5. **Test it**

   ```bash
   curl -I https://<your-azion-domain>
   # HTTP/2 200
   ```

   If you get an error right away, wait a few minutes: new URLs take a moment to propagate to Azion's data centers.

## What you built

You deployed an application to Azion's distributed infrastructure and confirmed it answers on its own domain. The workflow is the same one you will use for production projects.

## Next steps

- [Go live](/en/documentation/platform/workloads.md): Add a custom domain and point your traffic to the application you just deployed.
- [Secure your application](/en/documentation/platform/firewall.md): Enable Firewall and WAF protection.
- [Observe your application](/en/documentation/platform/real-time-metrics.md): Follow metrics and events in real time.

## Related resources

- [Applications](/en/documentation/platform/applications.md): The object you just created: the rules, the origins and the locations that answer for your domain.
- [Functions](/en/documentation/platform/functions.md): Run your own JavaScript on Azion's distributed infrastructure, on the request or on the response, in the same application.
- [Cache](/en/documentation/platform/applications.md#cache): Decide what Azion answers from cache, for how long, and by which key.
- [Azion CLI](/en/documentation/devtools/cli.md): Link, deploy and roll back a project from the terminal you already have open.
- [How Azion works](/en/documentation/fundamentals/how-it-works.md): Follow the request you just served through Azion's distributed infrastructure to your origin.
