Juno is an open-source serverless platform for hosting static websites, building web applications, and running serverless functions with the privacy and control of self-hosting.
Log in to the Juno Console.
Click the Launch a new satellite button (the container for your project) from the launchpad
Enter a name and select Website
Confirm with Create a Satellite
The platform will then provision its resources.
Once the process is complete, click Continue to access the overview page.
Your Astro project can be deployed to Juno as a static site.
Create a juno.config.mjs 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';
/** @type {import('@junobuild/config').JunoConfig} */
export default defineConfig({
satellite: {
ids: {
production: '<PROD_SATELLITE_ID>'
},
source: 'dist',
predeploy: ['npm run build']
}
});
You can deploy using either GitHub Actions or CLI (command line interface).
From your Satellite’s overview, navigate to the Setup tab.
Click on Add an access key.
Generate a new key with the default option. Click Submit.
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.
Create a deploy.yml file in the .github/workflows subfolder of your repo.
Add the following workflow configuration:
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 }}
Install the CLI
npm i -g @junobuild/cli
pnpm add -g @junobuild/cli
yarn global add @junobuild/cli
Authenticate the CLI. This will open the Juno Console.
juno login
In the browser window, click Authorize to grant permission.
Deploy your site:
juno hosting deploy
Quickly scaffold a website with a ready-made Astro template.
npm create juno@latest -- --template astro-starter
pnpm create juno -- --template astro-starter
yarn create juno -- --template astro-starter
© 2021 Fred K. Schott
Licensed under the MIT License.
https://docs.astro.build/en/guides/deploy/juno/