Deployment
Page summary:Deployment options cover hardware/software prerequisites, environment variable setup, and building the admin panel before launch, plus the principles a continuous deployment pipeline should respect. In the documentation: links to provider‑specific and advanced guides to help pick the right hosting strategy.
Strapi provides many deployment options for your project or application. Your Strapi applications can be deployed on traditional hosting servers or your preferred hosting provider.
The following documentation covers the basics of how to prepare Strapi for deployment on with several common hosting options.
You can use Strapi Cloud to quickly deploy and host your project.
If you already created a content structure with the Content-Type Builder and added some data through the Content Manager to your local (development) Strapi instance, you can leverage the data management system to transfer data from a Strapi instance to another one.
Another possible workflow is to first create the content structure locally, push your project to a git-based repository, deploy the changes to production, and only then add content to the production instance.
For self-hosted Kubernetes deployments, we recommend using npm rather than pnpm. pnpm aggressive hoisting of dependencies can break native modules, such as mysql2, that your application may rely on. npm flatter, more predictable node_modules layout helps ensure native packages load correctly.
General guidelines
This section covers the hardware, software, and configuration requirements for deploying Strapi.
Hardware and software requirements
To provide the best possible environment for Strapi the following requirements apply to development (local) and staging and production workflows.
Before installing Strapi, the following requirements must be installed on your computer:
- Node.js: Only Active LTS or Maintenance LTS versions are supported (currently
v22,v24, andv26). Odd-number releases of Node, known as "current" versions of Node.js, are not supported (e.g. v23, v25). - Your preferred Node.js package manager:
- Python (if using a SQLite database)
- A supported web browser: The Admin panel targets browsers matching the default Browserslist query:
last 3 major versions,Firefox ESR,last 2 Opera versions, andnot dead. See browsersl.ist for the current coverage matrix. Projects can override these defaults with a Browserslist configuration at the project root.
-
Standard build tools for your OS (the
build-essentialspackage on most Debian-based systems) -
Hardware specifications for your server (CPU, RAM, storage):
Hardware Recommended Minimum CPU 2+ cores 1 core Memory 4GB+ 2GB Disk 32GB+ 8GB -
A supported database version:
| Database | Recommended | Minimum |
|---|---|---|
| MySQL | 8.4 | 8.0 |
| MariaDB | 11.4 | 10.3 |
| PostgreSQL | 17.0 | 14.0 |
| SQLite | 3 | 3 |
Strapi does not support MongoDB (or any NoSQL databases), nor does it support any "Cloud Native" databases (e.g., Amazon Aurora, Google Cloud SQL, etc.).
Deploying databases along with Strapi is covered in the databases guide.
-
A supported operating system:
Operating System Recommended Minimum Ubuntu (LTS) 24.04 20.04 Debian 11.x 10.x RHEL 10.x 8.x macOS 26.0 11.x Windows Desktop 11 10 Windows Server Not Supported Not Supported
Application Configuration
Configuring a Strapi application for production takes 2 steps: setting the configuration through environment variables, then building the admin panel and launching the server.
1. Configure
We recommend using environment variables to configure your application based on the environment, for example:
module.exports = ({ env }) => ({
host: env('HOST', '0.0.0.0'),
port: env.int('PORT', 1337),
});
Strapi generates a .env file with default values when you create a new project. You can edit this file or set variables in your chosen deployment platform (see example .env file):
HOST=10.0.0.1
PORT=1338
To learn more about configuration details, see the configurations documentation.