Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Minor: Zerops Deployment Guide #7973

Merged
merged 29 commits into from May 5, 2024
Merged
Show file tree
Hide file tree
Changes from 27 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
61e6d8c
feat: zerops guide
nermalcat69 Apr 22, 2024
c9172c0
feat: link to "add new project"
nermalcat69 Apr 22, 2024
d616ecc
feat: fix link error
nermalcat69 Apr 22, 2024
1b4df23
tidyup
fxck Apr 22, 2024
08a6683
typo
fxck Apr 22, 2024
b21e304
typoe
fxck Apr 22, 2024
5d67ca1
typo
fxck Apr 22, 2024
3fe87f2
typo
fxck Apr 22, 2024
6e6ba0c
Merge pull request #1 from fxck/zerops-guide
nermalcat69 Apr 22, 2024
5bc29f6
feat: fix ports and httpsupport
nermalcat69 Apr 23, 2024
c7f14d9
Update src/content/docs/en/guides/deploy/zerops.mdx
nermalcat69 May 4, 2024
edb3513
Update src/content/docs/en/guides/deploy/zerops.mdx
nermalcat69 May 4, 2024
2fda240
Update src/content/docs/en/guides/deploy/zerops.mdx
nermalcat69 May 4, 2024
37b85c0
Update src/content/docs/en/guides/deploy/zerops.mdx
nermalcat69 May 4, 2024
20f1923
Update src/content/docs/en/guides/deploy/zerops.mdx
nermalcat69 May 4, 2024
45d6d63
Update src/content/docs/en/guides/deploy/zerops.mdx
nermalcat69 May 4, 2024
96cd880
Update src/content/docs/en/guides/deploy/zerops.mdx
nermalcat69 May 4, 2024
2a46f5b
Update src/content/docs/en/guides/deploy/zerops.mdx
nermalcat69 May 4, 2024
c270098
Update src/content/docs/en/guides/deploy/zerops.mdx
nermalcat69 May 4, 2024
62d3824
Update src/content/docs/en/guides/deploy/zerops.mdx
nermalcat69 May 4, 2024
c6912c7
fix url in resources
nermalcat69 May 4, 2024
c07917e
Update src/content/docs/en/guides/deploy/zerops.mdx
nermalcat69 May 4, 2024
bcbb7d8
Update src/content/docs/en/guides/deploy/zerops.mdx
nermalcat69 May 4, 2024
a8e1a90
Update src/content/docs/en/guides/deploy/zerops.mdx
nermalcat69 May 4, 2024
d78938d
Update src/content/docs/en/guides/deploy/zerops.mdx
nermalcat69 May 4, 2024
8ee8314
Update src/content/docs/en/guides/deploy/zerops.mdx
nermalcat69 May 4, 2024
9f154f1
Merge branch 'main' into zerops-guide
sarah11918 May 4, 2024
59e5cd3
wizard wizard!
sarah11918 May 5, 2024
9d5e553
Merge branch 'main' into zerops-guide
sarah11918 May 5, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
7 changes: 7 additions & 0 deletions public/logos/zerops.svg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions src/components/DeployGuidesNav.astro
Expand Up @@ -43,6 +43,7 @@ const services: Service[] = [
{ title: 'Kinsta', slug: 'kinsta', supports: ['ssr', 'static'] },
{ title: 'Deta Space', slug: 'space', supports: ['ssr', 'static'] },
{ title: 'Zeabur', slug: 'zeabur', supports: ['ssr', 'static'] },
{ title: 'Zerops', slug: 'zerops', supports: ['ssr'] },
];
---

Expand Down
164 changes: 164 additions & 0 deletions src/content/docs/en/guides/deploy/zerops.mdx
@@ -0,0 +1,164 @@
---
title: Deploy your Astro Site to Zerops
description: How to deploy your Astro site to the web using Zerops.
type: deploy
i18nReady: true
---
import PackageManagerTabs from '~/components/tabs/PackageManagerTabs.astro'
nermalcat69 marked this conversation as resolved.
Show resolved Hide resolved
import { Steps } from '@astrojs/starlight/components';

[Zerops](https://zerops.io/) 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

- **An Astro project using the [`@astrojs/node` SSR adapter](/en/guides/integrations-guide/node/)**
- **A Zerops account** - If you don’t already have one, you can [create a Zerops account](https://zerops.io/) for free.

:::tip[Start from a template]
The [Zerops x Astro - Node.js example app](https://github.com/zeropsio/recipe-astro-nodejs) can be imported directly into your [Zerops Dashboard](https://app.zerops.io/dashboard/projects), and deployed in one click!

```yaml
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](https://app.zerops.io/dashboard/project-add) wizard, or by importing an Astro site using `.yaml`.
sarah11918 marked this conversation as resolved.
Show resolved Hide resolved

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.

```yaml
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`:

<PackageManagerTabs>
<Fragment slot="npm">
```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
```
</Fragment>
<Fragment slot="pnpm">
```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
```
</Fragment>
<Fragment slot="yarn">
```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
```
</Fragment>
</PackageManagerTabs>

### 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)

<Steps>
1. Install the Zerops CLI.
```shell
# To download the zcli binary directly,
# use https://github.com/zeropsio/zcli/releases
npm i -g @zerops/zcli
```

2. Open [`Settings > Access Token Management`](https://app.zerops.io/settings/token-management) in the Zerops app and generate a new access token.

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

4. Navigate to the root of your app (where `zerops.yml` is located) and run the following command to trigger the deploy:
```shell
zcli push
```
</Steps>

## Resources

- [Deploying Astro to Zerops in 3 mins](https://medium.com/@arjunaditya/how-to-deploy-astro-to-zerops-4230816a62b4)
- [Detailed guide to creating a Zerops Node.js service](https://docs.zerops.io/nodejs/how-to/create)
1 change: 1 addition & 0 deletions src/data/logos.ts
Expand Up @@ -88,6 +88,7 @@ export const logos = LogoCheck({
'kontent-ai': { file: 'kontent-ai.svg', padding: '.15em' },
keystatic: { file: 'keystatic.svg', padding: '0' },
zeabur: { file: 'zeabur.svg', padding: '.2em' },
zerops: { file: 'zerops.svg', padding: '.2em' },
apostrophecms: { file: 'apostrophecms.svg', padding: '.15em .15em' },
db: { file: 'db.svg', padding: '.1em' },
});
Expand Down