Skip to main content

Deploy a Vue App

Use this guide to deploy and host your project to production.

1. Create a container

  1. Log in to the Juno Console.

  2. Click the Launch a new satellite button (the container for your project) from the launchpad

  3. Enter a name and select Website

  4. Confirm with Create a Satellite

  5. The platform will then provision its resources.

  6. Once the process is complete, click Continue to access the overview page.

2. Configure your project

Create a juno.config.ts file at the root of your project, and replace the PROD_SATELLITE_ID with the ID of the Satellite you created earlier.

import { defineConfig } from "@junobuild/config";

export default defineConfig({
satellite: {
ids: {
development: "<DEV_SATELLITE_ID>",
production: "<PROD_SATELLITE_ID>"
},
source: "dist",
predeploy: ["npm run build"]
}
});

3. How to deploy

You can deploy using either GitHub Actions or CLI (command line interface).

GitHub Actions deployment

  1. From your Satellite's overview, navigate to the Setup tab.

  2. Click on Add an access key.

  3. Generate a new key with the default option. Click Submit.

  4. Upon successful creation, a Secret token will be displayed. Copy the value and save it as an encrypted secret in your GitHub repository or organization, using the key JUNO_TOKEN.

  5. Create a deploy.yml file in the .github/workflows subfolder of your repo.

  6. Add the following workflow configuration:

.github/workflows/deploy.yml
name: Deploy to Juno

on:
workflow_dispatch:
push:
branches: [main]

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: 24
registry-url: "https://registry.npmjs.org"

- name: Install Dependencies
run: npm ci

- name: Deploy to Juno
uses: junobuild/juno-action@main
with:
args: hosting deploy
env:
JUNO_TOKEN: ${{ secrets.JUNO_TOKEN }}

CLI deployment

  1. Install the CLI
npm i -g @junobuild/cli
  1. Authenticate the CLI. This will open the Juno Console.
juno login
tip

An access token is used to identify your terminal. That's why the CLI asks whether you want to encrypt it with a password. For security reasons, it's recommended that you do so.

  1. In the browser window, click Authorize to grant permission.

  2. Deploy your site:

juno hosting deploy