Skip to content

Latest commit

 

History

History
164 lines (140 loc) · 4.9 KB

zerops.mdx

File metadata and controls

164 lines (140 loc) · 4.9 KB
title description type i18nReady
Deploy your Astro Site to Zerops
How to deploy your Astro site to the web using Zerops.
deploy
true

import PackageManagerTabs from '~/components/tabs/PackageManagerTabs.astro' import { Steps } from '@astrojs/starlight/components';

Zerops is a dev-first cloud platform that can be used to deploy an SSR Astro site.

This guide will walk you through deploying an Astro project using the Node.js adapter to Zerops.

Prerequisites

:::tip[Start from a template] The Zerops x Astro - Node.js example app can be imported directly into your Zerops Dashboard, and deployed in one click!

project:
  name: astro
services:
  - hostname: astronode
    type: nodejs@20
    buildFromGit: https://github.com/zeropsio/recipe-astro-nodejs
    ports:
      - port: 4321
        httpSupport: true
    enableSubdomainAccess: true
    minContainers: 1

:::

Creating a Zerops Node.js project

You can create a Node.js service for your Astro site through the Zerops project add wizard, or by importing an Astro site using .yaml.

The following YAML structure will setup a project called my-astro-sites with a Node.js v20 service called hellothere. One Zerops project can contain many Astro apps.

project:
  name: my-astro-sites
services:
  - hostname: hellothere
    type: nodejs@20
    ports:
      - port: 4321
        httpSupport: true
    minContainers: 1

Building and deploying your app to Zerops

Now that you've prepared a Node.js service on Zerops, you will need to create a zerops.yml file at the root of your project to trigger the build and deploy pipeline on Zerops.

The following example shows configuring the required build and run operations for the example project with hostname hellothere:

```yaml title="zerops.yml" zerops: - setup: hellothere build: base: nodejs@20 buildCommands: - npm i - npm run build deploy: - dist - package.json - node_modules cache: - node_modules - package-lock.json run: start: node dist/server/entry.mjs envVariables: HOST: 0.0.0.0 NODE_ENV: production ``` ```yaml title="zerops.yml" zerops: - setup: hellothere build: base: nodejs@20 buildCommands: - pnpm i - pnpm run build deploy: - dist - package.json - node_modules cache: - node_modules - pnpm-lock.json run: start: node dist/server/entry.mjs envVariables: HOST: 0.0.0.0 NODE_ENV: production ``` ```yaml title="zerops.yml" zerops: - setup: astronode build: base: nodejs@20 buildCommands: - yarn - yarn build deploy: - dist - package.json - node_modules cache: - node_modules - yarn.lock run: start: node dist/server/entry.mjs envVariables: HOST: 0.0.0.0 NODE_ENV: production ```

Trigger the pipeline using GitHub / GitLab

To setup continuous deployment on either a push to a branch or on a new release, go to your Node.js service detail and connect your Zerops service with a GitHub or GitLab repository.

Trigger the pipeline Using Zerops CLI (zcli)

1. Install the Zerops CLI. ```shell # To download the zcli binary directly, # use https://github.com/zeropsio/zcli/releases npm i -g @zerops/zcli ```
  1. Open Settings > Access Token Management in the Zerops app and generate a new access token.

  2. Log in using your access token with the following command: shell zcli login <token>

  3. Navigate to the root of your app (where zerops.yml is located) and run the following command to trigger the deploy: shell zcli push

Resources