Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions public/logos/seenode.svg
Loading
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
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ const services: Service[] = [
{ title: 'Zeabur', slug: 'zeabur', supports: ['ssr', 'static'] },
{ title: 'Zerops', slug: 'zerops', supports: ['ssr', 'static'] },
{ title: 'CloudRay', slug: 'cloudray', supports: ['static'] },
{ title: 'Seenode', slug: 'seenode', supports: ['ssr'] },
];
---

Expand Down
103 changes: 103 additions & 0 deletions src/content/docs/en/guides/deploy/seenode.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
---
title: Deploy your Astro Site to Seenode
description: How to deploy your Astro site to the web on Seenode.
sidebar:
label: Seenode
type: deploy
i18nReady: true
---
import { Steps } from '@astrojs/starlight/components';
import PackageManagerTabs from '~/components/tabs/PackageManagerTabs.astro';
import ReadMore from '~/components/ReadMore.astro';

[Seenode](https://seenode.com) is a deployment platform for building and deploying web applications with databases, built-in observability, and auto-scaling. Astro sites can be deployed to Seenode using server-side rendering (SSR).

This guide includes instructions for deploying to Seenode through the web interface.

## Project Configuration

### Adapter for SSR

To enable on-demand rendering in your Astro project and deploy to Seenode, add [the Node.js adapter](/en/guides/integrations-guide/node/) with the following `astro add` command. This will install the adapter and make the appropriate changes to your `astro.config.mjs` file in one step.

<PackageManagerTabs>
<Fragment slot="npm">
```shell
npx astro add node
```
</Fragment>
<Fragment slot="pnpm">
```shell
pnpm astro add node
```
</Fragment>
<Fragment slot="yarn">
```shell
yarn astro add node
```
</Fragment>
</PackageManagerTabs>

After installing the adapter, update your `astro.config.mjs` to configure the server for Seenode's requirements:

```js title="astro.config.mjs" ins={6-11}
import { defineConfig } from 'astro/config';
import node from '@astrojs/node';

export default defineConfig({
output: 'server',
adapter: node({
mode: 'standalone'
}),
server: {
port: process.env.NODE_ENV === 'production' ? (Number(process.env.PORT) || 80) : 4321,
host: true
}
});
```

Update your `package.json` to include a start script that runs the built server:

```json title="package.json" ins={6}
{
"scripts": {
"dev": "astro dev",
"build": "astro build",
"preview": "astro preview",
"start": "NODE_ENV=production node ./dist/server/entry.mjs"
}
}
```

<ReadMore>See [Seenode's Astro deployment guide](https://seenode.com/docs/frameworks/javascript/astro/) for more configuration options and troubleshooting.</ReadMore>

## How to Deploy

You can deploy to Seenode through the web interface by connecting your Git repository.

### Web Interface Deployment

<Steps>
1. Create a [Seenode account](https://cloud.seenode.com) and sign in.

2. Push your code to your Git repository (GitHub or GitLab).

3. From the [Seenode Dashboard](https://cloud.seenode.com/dashboard/applications/web/create), create a new **Web Service** and connect your repository.

4. Seenode will automatically detect your Astro project. Configure the deployment settings:

- **Build Command:** `npm ci && npm run build` (or use `pnpm` / `yarn` equivalents)
- **Start Command:** `npm start`
- **Port:** `80` (required for web services)

5. Select your preferred instance size and click **Create Web Service**.

6. Your application will be built and deployed. Once complete, you'll receive a URL to access your live Astro site after which you can link your domain.
</Steps>

## Official Resources

- [Seenode Cloud](https://cloud.seenode.com) — Seenode dashboard
- [Seenode Documentation](https://seenode.com/docs) — complete platform documentation
- [Seenode Astro Guide](https://seenode.com/docs/frameworks/javascript/astro/) — detailed deployment guide and troubleshooting
- [Seenode Astro Template](https://github.com/seenode/example-astro) — pre-configured starter template
1 change: 1 addition & 0 deletions src/data/logos.ts
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ export const logos = LogoCheck({
neon: { file: 'neon.svg', padding: '.2em' },
studiocms: { file: 'studiocms.svg', padding: '.25em' },
optimizely: { file: 'optimizely.svg', padding: '.2em' },
seenode: { file: 'seenode.svg', padding: '.2em' },
});

export type LogoKey = keyof typeof logos;
Expand Down