# Frequently Asked Questions (/docs/faq)



Find answers to common questions about deploying with Rock8Cloud.

***

## Getting Started [#getting-started]

### What do I need to deploy on Rock8Cloud? [#what-do-i-need-to-deploy-on-rock8cloud]

Just two things:

* A GitHub repository
* A Dockerfile with an exposed port

That's it - Rock8Cloud handles everything else.

### Do I need to know Docker? [#do-i-need-to-know-docker]

No. If you already have a Dockerfile, great - it'll work on Rock8Cloud as-is. If you don't, ask your AI coding agent to create one for you.

**Example prompt for your agent:**

```
Create a production-ready Dockerfile for my project.
It should build the app, expose the correct port, and
keep the image as small as possible.
```

Most agents (Cursor, Claude Code, GitHub Copilot) can generate a working Dockerfile from your project structure in seconds. See our [Dockerfile Requirements](/docs/dockerfile-requirements) guide for what Rock8Cloud expects.

### What languages and frameworks are supported? [#what-languages-and-frameworks-are-supported]

Any language that runs in Docker:

* Node.js, Python, Go, Ruby, PHP, Java, .NET
* React, Vue, Angular, Next.js, Nuxt
* Express, Flask, Django, Rails, Laravel
* And many more!

If it has a Dockerfile, we can deploy it.

### How long does the first deployment take? [#how-long-does-the-first-deployment-take]

Usually 2-5 minutes, depending on:

* Image size
* Number of dependencies
* Build complexity

Subsequent deployments are faster thanks to build caching.

***

## Deployments [#deployments]

### How do deployments work? [#how-do-deployments-work]

1. Push code to GitHub
2. Rock8Cloud receives webhook notification
3. Builds Docker image
4. Pushes to registry
5. Deploys to your environment
6. Runs health checks

See [How Rock8Cloud Works](/docs/how-deployments-work) for details.

### Can I deploy manually? [#can-i-deploy-manually]

Yes! On your service's **Deployments** tab, click **Manual deploy** to deploy the latest commit from the default branch without pushing.

### How do I rollback a deployment? [#how-do-i-rollback-a-deployment]

1. Go to your service's **Deployments** tab
2. Find the deployment to restore
3. Click **Rollback**

This redeploys the previous image instantly without rebuilding. See [Rollback Deployments](/docs/guides/rollback-deployments) for more details including the difference between rollback and rebuild.

### Can I cancel a deployment in progress? [#can-i-cancel-a-deployment-in-progress]

Yes, click **Cancel** on the deployment page. The build/deploy process stops immediately and the previous version continues running.

***

## Databases [#databases]

### What databases do you support? [#what-databases-do-you-support]

Currently:

* **[PostgreSQL](https://github.com/postgres/postgres)** (versions 14-17)
* **[Dragonfly](https://github.com/dragonflydb/dragonfly)** - Redis-compatible in-memory datastore

### How do I connect to a database? [#how-do-i-connect-to-a-database]

1. Add a database to your project
2. Link the exposed environment variables to your service in **Deployments** → **Env Vars**
   * PostgreSQL exposes: `HOST`, `PORT`, `NAME`, `USER`, `PASSWORD`, `URL`
   * Dragonfly exposes: `HOST`, `PORT`

See [Adding a Database](/docs/adding-a-database) for details.

### Is my database data persistent? [#is-my-database-data-persistent]

Yes! Database data persists across:

* Container restarts
* Service redeployments
* Application updates

Data is stored on persistent volumes.

### Can I access my database directly? [#can-i-access-my-database-directly]

Databases are network-isolated for security. They're only accessible from services within the same project.

For direct access, you'll need to connect through a service in your project or contact support.

***

## S3 Object Storage [#s3-object-storage]

### Do you support object storage? [#do-you-support-object-storage]

Yes! Rock8Cloud provides S3-compatible object storage. You can deploy an S3 storage service and use it with any S3-compatible client library.

See [S3 Object Storage](/docs/databases-and-storage/s3-storage) for setup instructions.

***

## Environment Variables [#environment-variables]

### How do I add environment variables? [#how-do-i-add-environment-variables]

1. Go to your service page
2. Go to **Deployments** → **Env Vars**
3. Click **Add Variable**
4. Enter key and value
5. Click **Save**

Saving automatically redeploys your service with the new configuration.

### Do preview deployments use different environment variables? [#do-preview-deployments-use-different-environment-variables]

No, preview deployments use the **same environment variables** as production.

Be careful with preview deployments if your env vars point to production services. Consider using separate staging projects with staging databases and APIs for safe testing.

***

## Domains & URLs [#domains--urls]

### What domain do my apps use? [#what-domain-do-my-apps-use]

New apps get a flat address, first come first served, lowercase letters/digits/dashes:

```
https://your-service-name.rock8cloud.app
```

Apps created before this shipped keep their `<service>-<org-slug>.apps.rock8.cloud` address. Move to a new name any time - see [Moving an existing app to a new name](/docs/guides/service-configuration#moving-an-existing-app-to-a-new-name).

### Can I use my own domain? [#can-i-use-my-own-domain]

Yes! You can add a custom domain (e.g., `app.yourcompany.com`) to any service.

**To add a custom domain:**

1. Go to your service page
2. Open **Deployments** → **Custom Domain**
3. Add your custom domain
4. Copy the displayed DNS target
5. Configure your DNS: a **CNAME record** pointing at the displayed hostname (recommended), or an **A record** (IPv4) and/or **AAAA record** (IPv6) for a root domain
6. Click **Verify** to confirm DNS is configured correctly

Once verified, your custom domain becomes active. Stable deployments keep serving on both the platform address (`*.rock8cloud.app`, or `*.apps.rock8.cloud` for apps created before that shipped) and your verified custom domain, so traffic reaches your service from either address.

**v1 Limitations:**

* One custom domain per service (no alias lists)
* Manual DNS configuration required (no automated setup)
* No wildcard domains (e.g., `*.app.yourcompany.com`)
* DNS verification uses CNAME and A/AAAA record lookup only
* Verification may fail temporarily due to DNS propagation, retry if needed

Preview deployments always use auto-generated preview URLs and are not affected by custom domain configuration.

### Are SSL certificates included? [#are-ssl-certificates-included]

Yes! All services get:

* Automatic SSL certificates
* Automatic renewal
* HTTPS by default
* HTTP → HTTPS redirect

No configuration needed.

### Why can't I access my deployed app? [#why-cant-i-access-my-deployed-app]

Common issues:

* Wait 1-2 minutes after deployment
* Verify port in settings matches Dockerfile's `EXPOSE`
* Check container logs for errors

***

## GitHub Integration [#github-integration]

### Which GitHub repositories can I connect? [#which-github-repositories-can-i-connect]

Any repository where the Rock8Cloud GitHub App is installed:

* Personal repositories
* Organization repositories
* Private repositories
* Public repositories

### Can I deploy from GitLab or Bitbucket? [#can-i-deploy-from-gitlab-or-bitbucket]

Currently only GitHub is supported. GitLab and Bitbucket support is planned.

### Do you support monorepos? [#do-you-support-monorepos]

Yes! Deploy multiple services from the same repository by using different Dockerfile paths. Rock8Cloud auto-scans your repository for Dockerfiles during deployment configuration.

We use Rock8Cloud to deploy Rock8Cloud itself, so we're confident it works well with monorepos.

### What happens if I delete my GitHub repository? [#what-happens-if-i-delete-my-github-repository]

Your deployed services continue running, but:

* Can't trigger new deployments
* Can't redeploy from GitHub
* Need to reconnect to a different repository

***

## Preview Deployments [#preview-deployments]

### What are preview deployments? [#what-are-preview-deployments]

Temporary deployments for pull requests. Each PR gets its own URL:

```
https://pr-123--your-service-name.rock8cloud.app
```

Apps still on the old `apps.rock8.cloud` address keep the old preview shape: `pr-123-your-service-your-org.apps.rock8.cloud`.

Great for testing changes before merging!

### How do I enable preview deployments? [#how-do-i-enable-preview-deployments]

1. Go to your service's **Workflows** tab
2. Enable the **Preview Deployments** workflow (enabled by default)
3. Configure source branch patterns if needed (defaults to `feat/*`)

New PRs matching your branch patterns will automatically deploy.

### Do preview deployments use the same database? [#do-preview-deployments-use-the-same-database]

Yes, preview deployments use the same environment variables as your main deployment, including database connections.

If you need separation, create a separate project or service with its own database for preview/staging purposes.

### When are previews deleted? [#when-are-previews-deleted]

Automatically when you:

* Close the pull request
* Merge the pull request

No manual cleanup needed!

***

## Security [#security]

### Are my private repositories secure? [#are-my-private-repositories-secure]

Yes:

* Code is only accessed during builds
* Build contexts are isolated
* Images stored in private registry
* Only your organization members can access

### Who can see my deployments? [#who-can-see-my-deployments]

Only members of your organization in Rock8Cloud. Deployments, logs, and environment variables are private.

Deployed apps (URLs) are publicly accessible if you share the link.

### Are databases isolated? [#are-databases-isolated]

Yes! Databases are network-isolated:

* Only accessible from services in same project
* Not accessible from internet
* Not accessible from other projects

***

## Organization & Teams [#organization--teams]

### Can multiple people access my projects? [#can-multiple-people-access-my-projects]

Yes! Invite team members to your organization:

* Shared access to all projects
* View deployments and logs
* Trigger deployments
* Manage environment variables

### How do I invite team members? [#how-do-i-invite-team-members]

1. Go to **Settings**
2. Click **Members**
3. Click **Invite Member**
4. Enter their email and assign a role
5. They'll receive an invitation

### Can I control permissions? [#can-i-control-permissions]

Yes! Rock8Cloud supports three roles: **Owner**, **Admin**, and **Member**. Owners have full access including organization deletion. Admins can manage members and settings. Members can view and deploy.

See [Teams and Organizations](/docs/guides/teams-and-organizations) for the full permissions matrix.

***

## Performance [#performance]

### How do I scale my application? [#how-do-i-scale-my-application]

Two knobs, both per service. Resize the service's CPU and memory allocation in 0.25 vCPU / 256 MiB steps, spending your plan's resource pool. Set both on the service's **Resources** tab - the replica maximum comes from your plan: 1 on Pluto, Mercury, and Earth, and 2 on Neptune. Replicas multiply the allocation drawn from the pool. See [Plans & Usage](/docs/plans-and-usage).

### What about auto-scaling? [#what-about-auto-scaling]

Auto-scaling based on CPU/memory is planned for future releases.

### Where are applications hosted? [#where-are-applications-hosted]

Applications run on Rock8Cloud's managed cloud infrastructure.

***

## Pricing & Limits [#pricing--limits]

### What plans are available? [#what-plans-are-available]

Rock8Cloud offers three self-serve plans:

|                                  | Pluto                | Mercury               | Earth                 |
| -------------------------------- | -------------------- | --------------------- | --------------------- |
| **Monthly**                      | €5/mo                | €20/mo                | €105/mo               |
| **Annual**                       | €54/yr (€4.50/mo)    | €216/yr (€18/mo)      | €1,134/yr (€94.50/mo) |
| **Resource Pool**                | 0.25 vCPU + 256 MiB  | 1 vCPU + 2 GiB        | 5 vCPU + 12 GiB       |
| **Default Service Size**         | 0.25 vCPU / 256 MiB  | 0.25 vCPU / 256 MiB   | 0.25 vCPU / 256 MiB   |
| **Replicas per Service**         | 1                    | 1                     | 1                     |
| **Build Minutes**                | 30/period            | 100/period            | 1,000/period          |
| **AI Budget**                    | €2/period            | €5/period             | €20/period            |
| **Custom Domains** (per service) | 1                    | 1                     | 2                     |
| **Object Storage**               | 1 GB                 | 5 GB                  | 25 GB                 |
| **Image Registry**               | 5 GB, 10 builds kept | 20 GB, 20 builds kept | 75 GB, 30 builds kept |
| **Password-protected URLs**      | -                    | -                     | yes                   |

All plans include a **free trial**. Extra CPU and memory units are available on any plan as fixed-price monthly add-ons. See [Plans & Usage](/docs/plans-and-usage) for full details.

For organizations that outgrow Earth, contact us about Neptune or our Enterprise tier.

### What happens when I hit a limit? [#what-happens-when-i-hit-a-limit]

* **Resource pool** - new deploys and preview environments are parked until resources free up or you buy more CPU/memory. Existing services continue running.
* **Build minutes** - new builds are rejected. Redeployments of already-built images still work.
* **AI budget** - code reviews, code analysis, and agents stop starting new runs until the period resets or you buy a top-up.
* **Object storage** - you cannot create a new bucket or raise a bucket's cap beyond the remaining quota.

See [Plans & Usage](/docs/plans-and-usage) for details on usage periods and limits.

***
