# Deployment
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 how to develop locally with Strapi and deploy Strapi with several common hosting options.
🤓 Community Guides
In addition to the official deployment guides maintained by Strapi that are found here, community-maintained guides for additional providers are available in the Strapi Forum (opens new window).
# General guidelines
# Hardware and software requirements
To provide the best possible environment for Strapi the following requirements apply to development (local) and staging and production workflows.
- Node LTS (v14 or v16) Odd-number releases of Node are not supported (e.g. v13, v15).
- NPM v6 (or the version shipped with the LTS Node versions)
- Standard build tools for your OS (the
build-essentials
package on most Debian-based systems) - Hardware specifications for your server (CPU, RAM, storage):
Hardware | Minimum | Recommended |
---|---|---|
CPU | 1 core | 2+ cores |
Memory | 2GB | 4GB+ |
Disk | 8GB | 32GB+ |
- A supported database version:
🤓 Database deployment
Deploying databases along with Strapi is covered in the databases guide.
Database | Minimum | Recommended |
---|---|---|
MySQL | 5.7.8 | 8.0 |
MariaDB | 10.3 | 10.6 |
PostgreSQL | 11.0 | 14.0 |
SQLite | 3 | 3 |
- A supported operating system:
Operating System | Minimum | Recommended |
---|---|---|
Ubuntu (LTS) | 20.04 | 22.04 |
Debian | 10.x | 11.x |
CentOS/RHEL | 8.x | 9.x |
macOS | 10.15 | 11.0 |
Windows Desktop | 10 | 12 |
Windows Server | 2019 | 2022 |
# Application Configuration
# 1. Configure
We recommend using environment variables to configure your application based on the environment, for example:
// Path: ./config/server.js
module.exports = ({ env }) => ({
host: env('APP_HOST', '0.0.0.0'),
port: env.int('NODE_PORT', 1337),
});
Then you can create a .env
file or directly set environment variables in your chosen deployment platform:
APP_HOST=10.0.0.1
NODE_PORT=1338
💡 TIP
To learn more about configuration details, see the configurations documentation.
# 2. Launch the server
Before running your server in production you need to build your admin panel for production:
Run the server with the production
settings:
✋ CAUTION
We highly recommend using pm2 (opens new window) to manage your process.
If you need a server.js file to be able to run node server.js
instead of npm run start
then create a ./server.js
file as follows:
const strapi = require('@strapi/strapi');
strapi(/* {...} */).start();
# Advanced configurations
If you want to host the administration on another server than the API, please take a look at this dedicated section.
# Hosting Provider Guides
Manual guides for deployment on the following platforms:
# Optional Software Guides
Additional guides for optional software additions that compliment or improve the deployment process when using Strapi in a production or production-like environment.