---
title: "Self-host Strapi on Edge | The leading open-source headless CMS"
description: "Run Strapi on Edge — Node.js on real VMs, your choice of database, S3-compatible Edge Storage as the upload provider, and a global CDN for the API and assets."
url: https://edge.network/solutions/strapi/
---

# Self-host Strapi on Edge | The leading open-source headless CMS

For Strapi

# Strapi on Edge, the headless API stack

Self-host the leading open-source headless CMS on real VMs.
S3-compatible media storage, global CDN for the API and uploads,
zero egress fees on the way to your front-end.

[Start free](https://edge.network/account) [Read the deploy guide](https://edge.network/docs/compute/getting-started)

# config/plugins.js — S3 upload provider

module.exports = ({ env }) => ({

upload: {

config: {

provider: 'aws-s3' ,

providerOptions: {

endpoint: 'https://storage.edge.run' ,

params: { Bucket: env('EDGE_BUCKET') },

},

},

},

})

# Provision the VM

$ edge compute create --plan small ...

## Why Strapi teams pick Edge

A real Node host, a global delivery network, and a media bucket — the three things every Strapi production setup needs.

### Node.js + your database, your way

Strapi runs on a small VM with Postgres, MySQL, MariaDB or SQLite. Pick the DB you already operate; Edge stays out of the way.

### S3 upload provider

Use the official `@strapi/provider-upload-aws-s3` plugin pointing at Edge Storage. Media library uploads land in a durable, CDN-fronted bucket.

### Image transforms at the edge

Skip Strapi's built-in image processing for high-volume use cases — let Edge Image Optimization generate responsive variants from a URL.

### Global CDN for the API

Front the REST and GraphQL endpoints through the Edge CDN. Cache public content responses, fall through for authenticated requests.

### Pairs with your front-end

Built to feed Next.js, Nuxt, SvelteKit, Astro and mobile apps. Run the front-end on its own Edge VM or static-host it from Edge Storage.

### Agent-deployable

Tell the Edge agentic API to deploy a Strapi instance to a domain — VM, DNS, CDN and SSL all wired up.

Reference architecture

## How Strapi maps to Edge

Strapi as the API origin, your front-end (Next.js / Nuxt / Svelte) on a separate VM or in Storage, both fronted by the CDN.

Compute Runs Strapi (Node.js) + your database on a VM

Storage S3-compatible upload provider for the media library

CDN Caches the public REST/GraphQL API and uploaded media

Image Optimization Optional: replace Strapi image processing with edge transforms

DNS Anycast DNS for `cms.example.com` and `app.example.com`

# Next.js front-end → Strapi API on Edge

const posts = await fetch(

'https://cms.example.com/api/posts' ,

{ next: { revalidate: 60 } }

).then(r => r.json())

# Image URL via Edge Image Optimization

<img src= `https://cdn.example.com/${post.cover.url}?w=1200&fm=webp` />

## Common questions

{faqs.map((faq) => (

### {faq.q}

{faq.a}

))}

## Ship Strapi on Edge

Start free. Bring an existing Strapi instance or scaffold one fresh.

[Start free](https://edge.network/account)
[Talk to an engineer](https://edge.network/contact)

}
