# 部署

Strapi 为您的项目或应用程序提供了许多可能的部署选项。Strapi 可以部署在传统的主机服务器上,或者像 21YunBox、 Render、 Heroku、 AWS、 Azure 等服务。下面的文档介绍了如何使用 Strapi 在本地进行开发,以及如何使用各种托管选项部署 Strapi。

TIP

数据库指南 中介绍了与 Strapi 一起部署数据库

# 托管提供商指南

在不同平台上部署的手动指南,对于一键式和码头式,请参阅 安装 指南。

Group

21YunBox

Step by step guide for deploying on 21YunBox

Amazon AWS

Step by step guide for deploying on AWS EC2

Azure

Step by step guide for deploying on Azure

DigitalOcean

Manual step by step guide for deploying on DigitalOcean droplets

Google App Engine

Manual step by step guide for deploying on GCP's App Engine

Heroku

Step by step guide for deploying on Heroku

Render

Three different options for deploying on Render

Qovery

Step by step guide for deploying on Qovery

# 可选的软件指南

当在生产或类似生产的环境中使用 Strapi 时,附加的可选软件补充指南可以补充或改进部署过程。

CAD

Caddy

Overview of proxying Strapi with Caddy

HAP

HAProxy

Overview of proxying Strapi with HAProxy

Nginx

Overview of proxying Strapi with Nginx

# 建议的要求

为了为 Strapi 提供尽可能好的环境,有一些需求,这些需求既适用于开发(本地) ,也适用于登台和生产工作流程。

  • Node LTS (v12 or V14) 注意,Node 的奇数版本永远不会被支持(例如 v13,v15).
  • NPM v6 or whatever ships with the LTS Node versions
  • Typical standard build tools for your OS (the build-essentials package on most Debian-based systems)
  • 至少 1 个 CPU 内核(强烈推荐至少 2 个)
  • 至少 2gb 内存(适度推荐 4)
  • 32 GB of 操作系统推荐的最小存储空间或 32GB 的 free 自由 space 空间
  • 支持的数据库版本
    • MySQL >= 5.6
    • MariaDB >= 10.1
    • PostgreSQL >= 10
    • SQLite >= 3
    • MongoDB >= 3.6
  • 支持的操作系统
    • Ubuntu >= 18.04 (LTS-Only)
    • Debian >= 9.x
    • CentOS/RHEL >= 8
    • macOS Mojave or newer (ARM not supported)
    • Windows 10
    • Docker - docker repo (opens new window)

# 应用程序配置

# 1. 配置

我们总是建议您使用环境变量来根据环境配置应用程序:

Path — ./config/server.js.

module.exports = ({ env }) => ({
  host: env('APP_HOST', '0.0.0.0'),
  port: env.int('NODE_PORT', 1337),
});

然后你可以创建一个 .env 文件或者直接使用你用来设置环境变量的部署平台:

Path — .env.

APP_HOST=10.0.0.1
NODE_PORT=1338

TIP

要了解更多关于配置的信息,可以阅读 这里 的文档

# 2. 启动服务器

在生产环境中运行服务器之前,您需要为生产环境构建管理面板

使用 production 设置运行服务器。

WARNING

我们强烈推荐使用 pm2 (opens new window) 来管理您的流程。

如果您需要一个 ./server.js 文件来运行 node server.js 而不是 npm run start,那么创建一个。如下所示:

const strapi = require('strapi');

strapi(/* {...} */).start();

# 高级配置

如果您希望将管理托管在 API 之外的其他服务器上,请查看这个专门的部分