---
title: "How to deploy a Vue app on Rock8Cloud"
description: "Deploy your Vue (Vite) app to Rock8Cloud - a static build served from your own nginx container. Connect your GitHub repo, hit deploy, live in about two minutes."
tech: "Vue"
icon: vue
category: frontend
pubDate: 2026-06-03
updatedDate: 2026-08-28
image: /how-to/og/vue.png
imageAlt: "How to deploy Vue on Rock8Cloud"
headerImage: true
exampleRepo: https://github.com/rock8-cloud/blueprint-vue
port: 80
ctaTitle: "Ship your Vue app."
ctaTitleHighlight: "Today."
ctaSubtitle: "Connect the repo, hit deploy, share the URL. Everything after that is just git push."
ctaIcons: [vue, typescript, javascript]
order: 20
steps:
  - name: "Select GitHub repository deployment"
    text: "In your Rock8Cloud project, choose GitHub repository deployment and connect your repo."
  - name: "Hit Deploy"
    text: "Rock8Cloud builds the image and serves your app at a live public URL. The container port is inferred from your Dockerfile's EXPOSE."
faq:
  - q: "Do I need a Dockerfile to deploy Vue?"
    a: "Yes - copy the example from this guide. If it sets EXPOSE, Rock8Cloud infers the container port automatically, so there is nothing else to configure."
  - q: "Is there a faster way to try it?"
    a: "Yes - the open-source Vue template clones to your GitHub account, builds, and goes live on our domain in one click. All you need is a GitHub sign-in. You can assign your own domain later."
  - q: "Does it work with Nuxt?"
    a: "This guide covers a static Vue SPA. Nuxt in server mode runs as a Node service - deploy it like a backend and set the port Nuxt listens on."
  - q: "How do I call my backend API?"
    a: "Point your frontend at your API URL with a build-time variable such as VITE_API_URL, and deploy the backend as a separate Rock8Cloud service."
---

A Vue app compiles to static files - on Rock8Cloud they're served from your own nginx container. Connect your GitHub repo, hit deploy, and you get a live URL in about two minutes.

## Deploy your app

One step: select **GitHub repository** deployment, connect your repo, and hit **Deploy**. Rock8Cloud builds the container image and serves your app at a live URL, with build and runtime logs in your browser.

No Dockerfile in the repo? Copy the example below.



> **Pro tip:** Set `EXPOSE` in your Dockerfile and Rock8Cloud infers the container port automatically - nothing else to configure.



**Example Dockerfile**



```dockerfile
# Build
FROM node:22-alpine AS build
WORKDIR /app
RUN npm install -g bun
COPY package.json bun.lock ./
RUN bun install --frozen-lockfile
COPY . .
RUN bun run build

# Serve
FROM nginx:alpine
COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=build /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
```

`EXPOSE 80` is what Rock8Cloud reads to route traffic to your container - no manual port setting needed.

## Don't have an app?

One-click start from our open-source template - based on the official [Vue getting started](https://vuejs.org/guide/quick-start.html) (Vue 3 + Vite with Pinia and Router). It's cloned to your GitHub, built, and put live on our domain. Or just browse it on GitHub and borrow what you need.



> **Pro tip:** You can assign your own domain to the app later.





[Vue 3 + Vite example](https://github.com/rock8-cloud/blueprint-vue)

[1-click clone & deploy](https://app.rock8.cloud/new-deployment?blueprint=vue&utm_source=howto&utm_medium=landing&utm_campaign=howto&utm_content=vue)



Or ask an agent instead of clicking. With Rock8Cloud [connected over MCP](/how-to/connect-claude), `deploy_blueprint` with the `vue` slug forks the same template into your GitHub account, creates the project with its services, and starts the first build.

## What you get

- A **live URL** on our domain - share it the moment the first build lands.
- **Deploy on push** - every push to your configured default branch rebuilds and ships automatically.
- A **preview URL per pull request** - review real builds, not screenshots.
- **Instant rollback** - one click back to any known-good build.

## Need an API?

A Vue SPA calls your backend over HTTP. Deploy the API as a separate Rock8Cloud service ([Go](/how-to/deploy-go), [Java](/how-to/deploy-java), [Kotlin](/how-to/deploy-kotlin)) and point the frontend at it with a build-time variable like `VITE_API_URL`. Databases live with the backend - [PostgreSQL](/how-to/provision-postgresql), [Dragonfly](/how-to/provision-dragonfly), and [S3](/how-to/provision-s3) are one click each.
