# Your First Deployment (/docs/first-deployment)



Deploy your application on Rock8Cloud in minutes. Just bring your code and a Dockerfile.

<video width="100%" style="{maxWidth: &#x22;1200px&#x22;, borderRadius: &#x22;8px&#x22;, margin: &#x22;20px 0&#x22;}">
  <source src="https://minio.11333311.xyz/vibeham-docs/rock8cloud-deploy.mp4" type="video/mp4" />

  Your browser does not support the video tag.
</video>

## What You Need [#what-you-need]

* A GitHub repository with a **Dockerfile**
* A port exposed in your Dockerfile (e.g., `EXPOSE 3000`)

That's it - Rock8Cloud handles everything else.

***

## Step 1: Sign In [#step-1-sign-in]

Navigate to your Rock8Cloud instance and click **Sign in with GitHub**.

***

## Step 2: Pick How to Start [#step-2-pick-how-to-start]

After signing in you'll be asked how you want to start:

* **Deploy and Develop** - build it, put it live, and work on it with agents.
* **Agentic Develop** - bring the code in and put agents on it. A repo is set up without being deployed. See [Agentic Develop](/docs/guides/develop-mode).

This guide follows **Deploy and Develop**.

***

## Step 3: Choose What to Deploy [#step-3-choose-what-to-deploy]

Then pick a source:

* **GitHub Repository** - Deploy an application from your repo
* **Database** - Create a PostgreSQL or Dragonfly instance
* **S3 Storage** - Deploy S3-compatible object storage

Select **GitHub Repository** to continue.

***

## Step 4: Connect GitHub [#step-4-connect-github]

If this is your first time, you'll need to configure the GitHub App:

1. Click **Configure GitHub App**
2. Select your organization or personal account
3. Choose which repositories Rock8Cloud can access
4. Click **Install** to confirm

Once configured, select the repository you want to deploy.

***

## Step 5: Configure Your Deployment [#step-5-configure-your-deployment]

Rock8Cloud generates sensible defaults, but you can customize:

* **Project Name** - Groups your services together
* **App Name** - Name for this service
* **URL** - Your app's public URL. The first part is yours to edit (or roll with ↻). You can attach your own domain later.

***

## Step 6: Deploy [#step-6-deploy]

Click **Deploy** and watch your application come to life!

| Phase         | What's Happening               |
| ------------- | ------------------------------ |
| **Queued**    | Deployment is waiting to start |
| **Building**  | Docker image is being built    |
| **Deploying** | Application is being deployed  |
| **Starting**  | Health checks are running      |
| **Live**      | Your app is live!              |

This usually takes 2-5 minutes depending on your app size.

***

## Step 7: Access Your App [#step-7-access-your-app]

Once deployed, your app is accessible at the URL shown on your service page.

Click the URL to open your live application.

***

## Automatic Redeployment [#automatic-redeployment]

After the initial deployment, Rock8Cloud automatically redeploys when you push to your branch:

```bash
git push origin main
```

No manual steps needed - push your code and Rock8Cloud handles the rest.

***

## Viewing Logs [#viewing-logs]

Need to debug? Click on any deployment to view:

* **Build logs**: What happened during the Docker build
* **Container logs**: Output from your running application

***

## What's Next? [#whats-next]

* **[Add Environment Variables](/docs/guides/environment-variables)** - Configure secrets and settings
* **[Add a Database](/docs/adding-a-database)** - Deploy PostgreSQL or Dragonfly
* **[Preview Deployments](/docs/guides/preview-deployments)** - Auto-deploy pull requests

***

## Troubleshooting [#troubleshooting]

### Deployment Failed? [#deployment-failed]

Check the build logs for errors. Common issues:

* **Missing Dockerfile**: Ensure `Dockerfile` exists in your repo root
* **Wrong port**: Port must match your Dockerfile's `EXPOSE`
* **Build errors**: Fix errors shown in the build logs

See [FAQ](/docs/faq) for more help.

### Can't Access Your App? [#cant-access-your-app]

* Wait 1-2 minutes for DNS propagation
* Check your app listens on `0.0.0.0`, not `localhost`
* Verify the port matches what your app uses

See [Dockerfile Requirements](/docs/dockerfile-requirements) for details.
