# Quickstart, first deploy in 5 minutes

This guide walks you through deploying your first `docker-compose.yml` on
compose_run.

## Prerequisites

- An account on [app.composerun.eu](https://app.composerun.eu)

## 1. Create a project

Sign in to the app, click **New project**, and fill in the form as shown in the screenshot below:

1. Project name, used for display only
2. Choose the project's hardware quotas
3. Choose how much storage your project needs (this must cover your Docker image sizes plus your Docker volume data)
4. Check how much the project will cost per hour or per month
5. Hit **Create and deploy**, and the project will be spun up

![create project screenshot](./createproject.png)


## 2. Add a stack

Once the project is created, you need to create the stack that will hold your Docker Compose file.
In your project, click **Add stack** and fill in the form as shown below:

1. Stack name
2. Start from a template
3. Start by pasting your docker-compose.yml file
4. Choose the template you want to start with

![create stack screenshot](./createstack.png)

You can then review the Docker Compose file, edit it, and preview how many services the system detects.

1. Preview/edit the docker-compose.yml file
2. Preview the detected services

![create docker compose screenshot](./createstackcompose.png)

## 3. Deploy

Once the stack has been created, you can open the playground.

<div className="grid grid-cols-2 gap-5 w-full">
    <div className='flex flex-col '>
        <img style={{ objectFit: "cover" }} src="./playground-img.png" alt='composerun playground' />
        <img src="./deployed.png" alt='composerun playground' />
    </div>
    <div>
    <p className='w-full'>Once you hit the deploy button in the top right (1), the Docker images are pulled and deployed. When it's done, the stack overview reads "deployed", as shown below.<br/><br/> The "in sync" and "drifted" labels tell you whether what you see in the playground still matches what is actually deployed on the infrastructure. <br/><br/> Hover the small info icon below the sync status to see how much CPU and RAM each stack is using.</p>
    <img className='px-10' src="./cpuram.png"/>
    </div>
</div>

## 4. See live logs

Once the deployment is finished, you can watch your Docker logs live in the logs tab, as shown below:

<div className="grid grid-cols-2 gap-5 w-full">
    <img className='px-10 w-100' src="./logs.png"/> 
    1. Live logs tab
    2. Filter by log level
    3. Refresh the latest logs
</div>



## What's next?

import {
  Card,
  CardContent,
  CardDescription,
  CardFooter,
  CardHeader,
  CardTitle,
} from "zudoku/ui/Card";
import { Link } from "zudoku/components";


<Card className="w-[350px]">
        <CardHeader>
            <CardTitle>Expose the stack to the web</CardTitle>
            <CardDescription>Link a free domain name to the stack and deploy the app on the web</CardDescription>
        </CardHeader>
        <CardContent>
            
        </CardContent>
        <CardFooter className="flex justify-between">
            <Link to="/user-guide/playground/domain"><Button>Expose the stack</Button></Link>
        </CardFooter>
    </Card>

